我发现最好的密码安全方法是php的内部方法,当然使用php进行登录时。
http://php.net/manual/en/function.password-hash.php
password_hash(“rasmuslerdorf”,PASSWORD_DEFAULT);
password_verify('rasmuslerdorf',$ hash);
它将盐存储在您的数据库中,并为您进行所有轮次检查。
经过几个小时的阅读加密后,我花了很长时间才找到这种方法。安全性不仅可靠,而且使用起来非常简单。
我建议你通过邮件发送信息,然后使用它。另外在往返中,如果你没有往返,有人可以跳过你的javascript哈希并使用纯哈希登录。这样,如果他们尝试使用哈希,它将重新哈希它并将其作为错误的pw返回,这就是它。
当JS依赖于此时,一般视图是什么? 反对纯PHP - 人们是否裁员,是否合法 简单地说这是一个只有JS的网站(该网站的数量很大 基于Twitter的bootstrap,所以它有点依赖于JS)。 我的PHP和JS是否以正确的方式连接? (我的饼干还能用吗?)
当JS依赖于此时,一般视图是什么? 反对纯PHP - 人们是否裁员,是否合法 简单地说这是一个只有JS的网站(该网站的数量很大 基于Twitter的bootstrap,所以它有点依赖于JS)。
我的PHP和JS是否以正确的方式连接? (我的饼干还能用吗?)
很难说有多少人今天使用互联网禁用javascript,但你的javascript不应该是阻碍,你的网站应该仍然可以使用javascript禁用。做起来并不难。而不是使用 .click() 对于你的AJAX查询,你应该使用 .submit() 一,并将其绑定到您的表单。这样你仍然可以通过PHP处理表单。
.click()
.submit()
而且这也是最好的做法之一 .click() 提交按钮上的事件,否则我无法按Enter键提交表单。
然后在您的PHP中,您将能够通过检查来了解是否已经从jQuery发送了请求 $_SERVER['X-Requested-With'] 。
$_SERVER['X-Requested-With']
然后你可以有两种不同的行为:
if ( isset( $_SERVER['X-Requested-With'] ) ) { // comes from jQuery } else { // basic submit }
我认为这大致是你应该如何界面你的应用程序。
我怎样才能创建一种安全的方式来使用jQuery .load()来引入我的 成功登录后的内容?
您可以从PHP返回true或false。或者,如果您需要重新显示某些数据,则可以传递json对象。假设您有一组要传回的数据
PHP
if ( isset( $_SERVER['X-Requested-With'] ) ) { $data = array('success' => true , 'username' => $username ); return json_encode( $data ); }
关于使我的系统安全的任何一般建议?
您通过POST(通过AJAX)发送数据,这不比以正常方式发布数据安全。
您使用JS作为与服务器交互的另一种方式,而不是常规浏览。因此它的安全性不会低于您要求的任何其他页面。
如果您将登录信用证发布到PHP页面以检查登录,请像存储常规请求(可能是会话)一样存储信息。现在,每次使用AJAX从服务器请求数据时,请在发送回数据之前再次检查服务器端的会话。如果未经授权,只需返回错误。在JS中,您现在可以检查响应并基于此采取操作。
我建议使其安全,就像开发常规浏览器一样,开发每一页。如果你能做到这一点,使用AJAX时也是安全的。
作为非安全建议。除非你愿意牺牲一些访客(旧手机,平板电脑或只是js禁用的浏览器),否则不要制作仅限javascript的网站。