为了账号安全,请及时绑定邮箱和手机立即绑定

如何防止PHP中的代码注入攻击?

如何防止PHP中的代码注入攻击?

PHP
侃侃尔雅 2019-11-07 12:52:57
我有点困惑,PHP中有很多函数,有些使用这个,有些使用那个。有些人使用:htmlspecialchars(),htmlentities(),strip_tags()等哪个是正确的,你们通常使用什么?这是正确的吗(如果有的话,建议我做一个更好的):$var = mysql_real_escape_string(htmlentities($_POST['username']));该行可以防止MySQL注入和XSS攻击?顺便说一句,除了XSS攻击和MySQL注入之外,还有其他需要注意的事情吗?编辑结论:如果我想将字符串插入数据库,则无需使用htmlentities,只需使用即可mysql_real_escape_string。在显示数据时,请使用htmlentities(),这是您的全部意思吗?总结:mysql_real_escape_string 在插入数据库时使用htmlentities() 在将数据输出到网页时使用htmlspecialchars() 什么时候用的?strip_tags() 什么时候用的?addslashes() 什么时候用的?有人可以填写问号吗?
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

仅在数据进入需要对其进行编码的系统中进行编码–否则,您将遇到要处理真实数据的情况。


对于SQL注入-按照如何防止PHP中的SQL注入中所述使用绑定变量。(它讨论的是准备好的语句,但是绑定可以为您提供保护,而不是准备)。


对于XSS-如果要在指定HTML或文本的位置写入HTML。在生成文档时使用htmlentities。我会避免以这种形式将数据存储在数据库中(除非在经常发生写稀疏读取的系统中,CPU性能/磁盘访问时间越来越多并且出现问题-否则我将获得该列的raw_和html_版本…或只使用memcached或类似的东西。


如果要让用户输入URL,则您需要更加小心,因为javascript:do_evil()将执行有效的URI(例如,作为单击链接的href或(在某些浏览器中)作为刚刚加载的图像的src)。


查看完整回答
反对 回复 2019-11-07
  • 3 回答
  • 0 关注
  • 537 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信