Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在身份验证中使用jQuery和AJAX重定向页面安全吗_Javascript_Php_Jquery_Ajax_Authentication - Fatal编程技术网

Javascript 在身份验证中使用jQuery和AJAX重定向页面安全吗

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重定向页面是否存在任何安全问题?既然您已

我正在使用PHP、JQuery和AJAX创建一个用户身份验证系统。提交时,将向“authenticate.php”发送一个请求,其中包含以下数据:
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”?“如果我使用会话并检查用户是否登录,那么这种方式是否安全?”——这取决于您如何实现它。但考虑到如此广泛的安全问题,这一点相当宽泛