function sanitizeString($var) { $var = stripslashes($var); $var = htmlentities($var); $var = strip_tags($var); return $var; } function sanitizeMysqL($var) { $var = MysqL_real_escape_string($var); $var = sanitizeString($var); return $var; }
我从一本书中得到了这两个函数,作者说通过使用这两个函数,我可以对XSS(第一个函数)和sql注入(第二个函数)更加安全.
这些都是必要的吗?
另外,对于清理,我使用预准备语句来防止sql注入.
我会像这样使用它:
$variable = sanitizeString($_POST['user_input']); $variable = sanitizeMysqL($_POST['user_input']);
编辑:摆脱第一个函数的strip_tags,因为它没有做任何事情.
使用这两个功能是否足以防止大多数攻击并且对公共站点没问题?
这是真的,但这种逃避水平可能并不适合所有情况.如果要将HTML存储在数据库中该怎么办?
最佳实践规定,在显示它们时,应该逃避它们,而不是在接收值时转义它们.这允许您考虑显示来自数据库的HTML和来自数据库的非HTML,并且它确实是这种代码在逻辑上属于的地方.
清理传出HTML的另一个优点是可以发现新的攻击媒介,在这种情况下,对传入的HTML进行清理将不会对数据库中已有的值执行任何操作,而传出的清理将追溯应用而无需执行任何特殊操作
原文地址:https://www.jb51.cc/php/134969.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。