Yii和XSS,数据从哪里逃逸?

标签 yii xss

在 Yii 中在哪里转义用户输入?

  1. 我应该在将它们保存到数据库之前调用 CHtml::encode(strip_tags()) 吗? 或者我应该在 echo 之前在 View 中对它们进行编码?

  2. 有没有办法在验证时自动对输入文本进行编码? [a-zA-Z0-9]* 验证是否是验证中过滤注入(inject)的最佳方式?

最佳答案

对于第一个,这是我个人的意见,但我会按照你说的去做:CHtml::encode(strip_tags()) 在保存数据之前。之前这样做的主要优点是,如果您从不同的媒体(网站、API 等)获取数据,您将确保检索到的数据是安全的。

对于第二点,我不知道是否有一种特定的方法可以自动对输入文本进行编码,但是您可以使用 beforeValidate()beforeSave() 模型中的方法来做到这一点!

为了 yii 的安全,我邀请你查看关于 writing secure yii applications 的 wiki

关于Yii和XSS,数据从哪里逃逸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062477/

相关文章:

mysql查询在不同的服务器上给出不同的结果

yii - 别名 "ext.components.MyClass"无效。确保它指向一个现有的 PHP 文件并且该文件是可读的

php - 如何在 PostgreSQL array_append() 中使用数组变量?

javascript - 这容易受到 XSS 攻击吗?

oauth - 需要通过 oauth 插件对使用 Twitter、Google、Facebook API 的用户进行身份验证吗?

gridview - yii2相关数据搜索中与id冲突

javascript - AngularJS 应用程序中的 XSS

asp.net-mvc - 我应该在 ASP.NET MVC 中使用 Anti-XSS 安全运行时引擎吗?

javascript - 攻击者能否在 html5 数据属性中插入恶意代码

php - 我可以使用此清理功能安全地将数据输出给用户吗