Php 此登录结构对SQL注入安全吗?
我想/我正忙于完全重写我的整个网站。在这一点上,我正在致力于我所谓的“成员和安全引擎”。我已经读了很多关于安全性和SQL注入的书,它相当复杂。 另外,我的网站与其说是一个拥有250多名会员的专业赚钱网站,不如说是一种爱好 对于用户名和密码,我只允许使用字符a-z、a-z和0-9。我在Php 此登录结构对SQL注入安全吗?,php,login,Php,Login,我想/我正忙于完全重写我的整个网站。在这一点上,我正在致力于我所谓的“成员和安全引擎”。我已经读了很多关于安全性和SQL注入的书,它相当复杂。 另外,我的网站与其说是一个拥有250多名会员的专业赚钱网站,不如说是一种爱好 对于用户名和密码,我只允许使用字符a-z、a-z和0-9。我在if(isset(post))-函数中检查这一点: if(ctype_alnum(mysql_real_escape_string(stripslashes($string))) == false) { he
if(isset(post))
-函数中检查这一点:
if(ctype_alnum(mysql_real_escape_string(stripslashes($string))) == false) {
header to error-page; exit;}
else {continu with script}
对密码和用户名都进行此检查
当有人试图用未知用户名或密码错误的已知用户名登录时,操作会记录(插入)在一个特殊表中,包括IP地址。尝试使用未知用户名登录10次,或尝试使用错误密码登录6次后,IP地址将被阻止进入会员区,所有非会员页面上的表单和表单提交都不会显示,并且由于此IP阻止,因此无法使用。我甚至在提交表单时将此ip检查作为一行。。。如果ip在表中,标题(到错误页);退出
我的问题是:
- 当我放置文件时,是否需要进行安全检查
字符串中的IP地址<代码>$xip=$\u服务器['REMOTE\u ADDR']代码>此
为 尝试使用未知用户登录时插入到表中,或 密码错误$xip
- 这是一个(相当)安全的环境,可以抵御黑客攻击和SQL注入吗
- 如果没有?我非常感谢您的帮助和建议(非常感谢您在这里编写完整的解决方案,但我学到了很多 当您让我找到正确的解决方案时,会有更多信息)
- 当我从
或$\u cookie
检索此信息时,是否也必须运行“ctype\u alnum”检查$\u会话
另外,我是荷兰人,所以几乎我所有的表名、列名、表单输入字段名等都有荷兰语单词。我仍在努力,但当网站完成后,你在我的网站上找不到“password”、“pass”、“user”、“userid”或类似的词。必须将准备好的语句与MySQLi或PDO一起使用,这是防止SQL注入的第一步,mysql_*命令无论如何都不推荐使用 但是,要回答您关于防止SQL注入的最佳实践的问题,最好的地方是OWASP:他们有很多关于通用方法和代码审查的优秀资源,以及特定于语言的指南和库
必须将准备好的语句与MySQLi或PDO一起使用,这是防止SQL注入的第一步,无论如何,mysql_*命令都不推荐使用 但是,要回答您关于防止SQL注入的最佳实践的问题,最好的地方是OWASP:他们有很多关于通用方法和代码审查的优秀资源,以及特定于语言的指南和库
如果你要重写整个站点,那么就用MySQLi或PDO用准备好的语句重写,而不是用MySQL库重写。如果你要重写整个站点,那么就用MySQLi或PDO用准备好的语句重写,而不是用MySQL库重写。两点钟。“您必须发布整个身份验证代码”是什么意思?4点。我想。。。当我在表单中使用从cookie或会话中检索到的信息时,我应该进行ctype_alnum检查,否则它将保存以供使用。您的问题集中在用户身份验证部分,因此如果不查看它,很难判断它是否安全。现在,关于$\u COOKIE和$\u会话数组的成员,如果在SQL语句中使用它们,特别是对于$\u COOKIE数组,您需要处理它们。使用prepared语句绝对是必须的,因为您可以消除所有可能封装到variables.thanx中的邪恶。两点钟。“您必须发布整个身份验证代码”是什么意思?4点。我想。。。当我在表单中使用从cookie或会话中检索到的信息时,我应该进行ctype_alnum检查,否则它将保存以供使用。您的问题集中在用户身份验证部分,因此如果不查看它,很难判断它是否安全。现在,关于$\u COOKIE和$\u会话数组的成员,如果在SQL语句中使用它们,特别是对于$\u COOKIE数组,您需要处理它们。使用prepared语句绝对是必须的,因为您可以消除可能封装到变量中的所有弊端。