我正在尝试创建一个用户登录系统,每个用户都有一个密码、一个用户名和一个级别(I.E Admin或Master)。到目前为止我所做的:
使用PHP创建了一个mySQL数据库,并在表中创建了相关字段。
制作了一个简单的Angular JS页面。
我正在尝试链接数据库和页面,这样我就可以根据mySQL表"密码"部分中存储的所有数据来检查用户在登录输入字段中的输入。
你知道我怎样才能做到这一点吗?请给出最简单、直接的答案,因为我是Angular(和mySQL!)的新手
谢谢!
您不应该在有角度的页面上登录,因为所有相关的数据都由javascript处理,可以很容易地停止、调试和分析。
更好的方法是:
- 创建一个普通的index.php,它向用户显示一个登录表单
- 提交时检查数据库的有效性
- 如果用户有效,则启动会话并将
header
转到实际的角度应用程序页面 - 检查这是否是有效的
php session
的唯一方法是通过角度http
服务对数据库相关php脚本进行REST
调用 - 因此,每次对
REST api
的读/写访问都应该检查一下,如果这个用户真的被允许在php脚本中执行这个db操作的话 - 如果检查失败,
header
会返回登录页面或一些"Got you!"页面
通过这种方式,attakor可能能够看到angular应用程序的js代码(如果他以某种方式掌握了实际地址),但这对他来说完全没有用,因为只要他没有启动有效的php session
,他就永远看不到实际数据。数据是你想要保护的,而不是应用程序的脚本。
简而言之:混合标准PHP验证和Angular。允许haxors访问你的页面,但永远不要向他们显示你的任何底层数据。一旦有人试图篡改你的数据,就把他赶出去。
这与我在这里给出的答案几乎相同
在PHP和Angular网站中搜索标记的关键词,以了解这背后的想法。