Javascript 在身份验证中使用jQuery和AJAX重定向页面安全吗
我正在使用PHP、JQuery和AJAX创建一个用户身份验证系统。提交时,将向“authenticate.php”发送一个请求,其中包含以下数据:Javascript 在身份验证中使用jQuery和AJAX重定向页面安全吗,javascript,php,jquery,ajax,authentication,Javascript,Php,Jquery,Ajax,Authentication,我正在使用PHP、JQuery和AJAX创建一个用户身份验证系统。提交时,将向“authenticate.php”发送一个请求,其中包含以下数据:username&password,使用AJAX。PHP代码检查数据库中的记录,并在成功时返回0,在失败时返回1。然后,如果返回值为0,则使用'window.location=“user.php”将页面重定向到“用户专用页面” 现在的问题是,像这样进行身份验证是否安全、正确?使用jQuery/JavaScript重定向页面是否存在任何安全问题?既然您已
username
&password
,使用AJAX。PHP代码检查数据库中的记录,并在成功时返回0,在失败时返回1。然后,如果返回值为0,则使用'window.location=“user.php”
将页面重定向到“用户专用页面”
现在的问题是,像这样进行身份验证是否安全、正确?使用jQuery/JavaScript重定向页面是否存在任何安全问题?既然您已经在使用PHP,我不建议使用JS重定向用户。您可以使用PHP进行以下操作:
if($user == $db['user'] && $password == $db['password']){
$_SESSION['logged_in'] = true;
header('location:user.php');
}else{
echo 'username of password is wrong';
}
然后在user.php文件上:
if(isset($_SESSION['logged_in'] && $_SESSION['logged_in'] == true){
echo 'welcome to the user page';
}else{
header('location:index.php');//Go back to login page
}
如果用户直接进入user.php页面,他们将被重定向到index.php页面。由于您已经在使用php,我不建议使用JS重定向用户。您可以使用PHP进行以下操作:
if($user == $db['user'] && $password == $db['password']){
$_SESSION['logged_in'] = true;
header('location:user.php');
}else{
echo 'username of password is wrong';
}
然后在user.php文件上:
if(isset($_SESSION['logged_in'] && $_SESSION['logged_in'] == true){
echo 'welcome to the user page';
}else{
header('location:index.php');//Go back to login page
}
如果用户直接转到user.php页面,他们将被重定向到index.php页面
现在的问题是,像这样进行身份验证是否安全、正确
只有在user.php
中再次检查用户是否已经成功通过身份验证。(这通常是会话发挥作用的地方。)
否则,当然每个知道user.php
URL的人都可以直接访问它
使用jquery/js重定向页面是否存在安全问题
window.location=“user.php”
(这是错误的,顺便说一句-正确的应该是window.location.href=“user.php”
)和该页面的普通链接
之间的唯一区别是第一个链接自动发生,第二个链接需要用户首先单击链接
因此,它就像使用简单链接一样“安全”。在这种情况下,这实际上意味着什么,取决于我上面所说的
现在的问题是,像这样进行身份验证是否安全、正确
只有在user.php
中再次检查用户是否已经成功通过身份验证。(这通常是会话发挥作用的地方。)
否则,当然每个知道user.php
URL的人都可以直接访问它
使用jquery/js重定向页面是否存在安全问题
window.location=“user.php”
(这是错误的,顺便说一句-正确的应该是window.location.href=“user.php”
)和该页面的普通链接
之间的唯一区别是第一个链接自动发生,第二个链接需要用户首先单击链接
因此,它就像使用简单链接一样“安全”。在本例中,这实际上意味着什么,取决于我上面所说的。取决于您希望应用程序的安全性和兼容性。根据RFCs,不建议这样登录,但将表单保留在服务器端,并将登录表单集成到前端(通过iframe),然后使用重定向url和令牌、作用域等重定向到本地html,然后将窗口postmessage发送到前端应用程序
如果你只是想快速而肮脏,你可以选择window.location.href
或document.location.href
或者更安全一点,将用户发送到服务器并让其重定向回去,但最终可能会进入重定向地狱,因为返回到用户所在的状态(包括设置和其他内容)并不容易
无论如何,无论您在服务器端(会话)之后做什么,都必须检查当前用户的会话状态。取决于您希望应用程序的安全性和兼容性。根据RFCs,不建议这样登录,但将表单保留在服务器端,并将登录表单集成到前端(通过iframe),然后使用重定向url和令牌、作用域等重定向到本地html,然后将窗口postmessage发送到前端应用程序
如果你只是想快速而肮脏,你可以选择window.location.href
或document.location.href
或者更安全一点,将用户发送到服务器并让其重定向回去,但最终可能会进入重定向地狱,因为返回到用户所在的状态(包括设置和其他内容)并不容易
无论如何,无论您在服务器端(会话)之后做什么,都必须检查当前用户的会话状态.如果您使用ajax验证用户,则使用窗口重定向用户不会有问题。位置如果您使用ajax验证用户,则使用窗口重定向用户不会有问题。位置谢谢,如果我在“user.php”中使用会话并检查用户是否登录,那么这种方式是否安全?“window.location”对我很有效。我是否应该将其更改为“window.location.href”?“如果我使用会话并检查用户是否登录,那么这种方式是否安全?”——这取决于您如何实现它。但是这是相当广泛的,因为开发登录系统的一般安全考虑是你应该自己去阅读的。“和‘window.location’对我来说很有效。我是否应该将其更改为‘window.location.href’?”–它很有效,因为浏览器会自动更正此常见错误。是的。谢谢,如果我在“user.php”中使用会话并检查用户是否登录,那么这种方式安全吗?“window.location”对我很有效。我是否应该将其更改为“window.location.href”?“如果我使用会话并检查用户是否登录,那么这种方式是否安全?”——这取决于您如何实现它。但考虑到如此广泛的安全问题,这一点相当宽泛