我目前正在为一个服务开发一个API,我想知道这是否可以被归类为足够安全,以防止对数据库的注入和/或其他恶意攻击。
$username = mysql_real_escape_string(ereg_replace("[^A-Za-z0-9]", "", $_REQUEST['username']));
$password = mysql_real_escape_string(ereg_replace("[^A-Za-z0-9]", "", $_REQUEST['password']));它所做的是剥离除字母和数字之外的所有内容,然后运行mysql_real_escape_string命令来运行一个精细的梳理,以防某些东西被设法通过。
发布于 2011-10-18 09:40:08
跳过不推荐使用的ereg_replace()函数,只使用mysql_real_escape_string()。
另外,为什么要将用户密码限制为字符子集?这只会让破解变得更容易。
发布于 2011-10-18 09:41:27
只要你的正则表达式就足够了,不需要任何进一步的清理。
但是,您应该考虑在表单和数据库之间创建某种类型的层,以便自动执行此清理。
发布于 2011-10-18 09:46:13
纳撒尼尔
你的用户名应该没问题(也许把'_‘加到RE中),但是你在密码方面遇到了真正的问题,不是吗?任何半像样的身份验证都会积极地鼓励用户选择包含符号以及字母、大写字母和数字的密码。
所以我想我应该坚持在字符串中使用 - Escapes特殊字符,以便在SQL语句中使用...当然,在仔细阅读文档之后。
干杯,伙计。基思。
https://stackoverflow.com/questions/7801545
复制相似问题