繁体   English   中英

使用php javascript mysql登录注册系统中的安全性问题

[英]security issues in Login registration system using php javascript mysql

我正在从头开始构建具有注册和登录功能的Web应用程序。 关于安全性问题和攻击(例如mysql注入),我完全是新手。 除了对数据库中的密码进行加密外,我还需要担心什么其他安全问题? 我该如何照顾他们呢? 谢谢

您需要确保清理SQL中的所有变量,如果您不使用类似PDO的方法,则使用mysql_real_escape_string最容易完成此操作

例如,当您检查用户凭据时,您的代码将类似于:

$sql = "SELECT `id` FROM `users` WHERE `username` = '".mysql_real_escape_string($_POST['username'])."' AND `password` = '".mysql_real_escape_string($_POST['password'])."'";
$dosql = mysql_query($sql); // etc

值得在登录例程中添加以下内容以防止会话固定

session_regenerate_id(true);

您真正需要注意的一件事是跨站点请求伪造 (CSRF或XSRF)。 防止它的最简单方法是在每个请求中发送令牌(即使发送登录cookie的副本也可以)。

您还必须担心跨站点脚本攻击。 (通常简称为XSS)基本上,这意味着,如果您的应用程序曾经使用户提交的数据成为后续页面HTML的一部分,则必须对其进行清理。 例如,如果您的应用程序是留言板,那么恶意的用户可能会发布带有嵌入式HTML的帖子,而该帖子会在用户不知情的情况下加载远程JavaScript。

一种简单的防御方法是使用将HTML字符编码为实体代码的函数对Web应用程序HTML中组成的任何数据进行编码。 在PHP中,您可以使用htmlspecialchars()

但是,实际上您还应该考虑更多。 OWASP(开放Web应用程序安全性项目)是在这个领域真正创建标准的行业组织。 他们发布了OWASP十大列表,列出了十个最普遍的安全漏洞。 您会在此处看到这些答案中提到的所有内容。

搜索“登录安全性问题”,有许多不错的文章。 这很棒: 最常见的安全性错误 仔细阅读所有有表决权的答案,并确保您知道它的意思,并且没有犯错。 简而言之,为了安全起见,您必须假设来自用户的每条数据都可能是恶意的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM