我正在使用PHP,JQuery和AJAX创建用户身份验证系统。提交后,我们会向“authenticate.php”发送一条请求,其中包含以下数据:<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v4.widget.DrawerLayout
android:id="@+id/my_drawerlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- your content layout -->
<include layout="@layout/activity_list"/>
<android.support.design.widget.NavigationView
android:layout_marginTop="61dp"
android:id="@+id/my_navigation"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layoutDirection="ltr"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/drawer"/>
&amp; username
使用AJAX。 PHP代码检查数据库中的记录,并在password
上返回0,在success
上返回1。然后,如果返回的值为0,则页面将使用failure
重定向到“用户私人页面”。
现在,问题是,这样的身份验证是否安全且正确?使用jQuery / JavaScript重定向页面是否存在安全问题?
答案 0 :(得分:0)
由于您已经使用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页面。
答案 1 :(得分:0)
现在,问题是,这样的身份验证是否安全且正确?
如果用户已经成功通过身份验证,则只有在@model EventPart
<fieldset>
<legend>@T("Event")</legend>
<fieldset>
<div class="editor-label">
<label for="@Html.FieldIdFor(m => m.StartDateTimeProxy)">@T(Html.DisplayNameFor(m => m.StartDateTimeProxy).AsString())</label>
</div>
<div class="editor-field">
@Html.EditorFor(m => m.StartDateTimeProxy) @* will render Orchard`s datetime editor, see Orchard.Resources/Views/EditorTemplates/DateTimeEditor *@
@Html.ValidationMessageFor(m => m.StartDateTimeProxy)
</div>
</fieldset>
</fieldset>
内再次检查 。 (这通常是会议发挥作用的地方。)
否则,当然知道user.php
网址的每个人都可以直接访问它。
使用jquery / js重定向页面是否有任何安全问题?
user.php
(这是错误的,顺便说一下 - 正确的是window.location="user.php"
)之间的唯一区别,也就是说,该页面的正常链接window.location.href="user.php"
是第一个一个会自动发生,第二个会要求用户先点击链接。
因此,它就像你使用了一个简单的链接一样“安全”。在这种情况下,这实际上意味着什么,取决于我上面所说的。
答案 2 :(得分:0)
取决于您希望应用程序的安全性和合规性。根据RFC,不建议像这样登录,但保留表单在服务器端并将登录表单集成到前端(通过iframe),然后只需将重定向URL和令牌,范围等重定向到本地html,然后例如。向您的前端应用程序发送一个窗口postmessage。
https://tools.ietf.org/html/rfc6749#page-19
如果您只想快速而又肮脏,可以选择window.location.href
或document.location.href
。
或者更安全一点,将用户发送到服务器并将其重定向回来,但最终可能会重定向地狱,因为它不容易回到用户所处的状态(包括设置和内容)
无论如何,无论您之后使用服务器端(会话),您都必须检查当前用户的会话状态。