我想在我的网站上有一个“联系我们”,这样用户就可以在一个文本框中输入,当他点击“提交”时——它将被存储起来供我以后查看。
这里有注射的危险吗?
我想在我的网站上有一个“联系我们”,这样用户就可以在一个文本框中输入,当他点击“提交”时——它将被存储起来供我以后查看。
这里有注射的危险吗?
可能是的,但这取决于您存储文本的位置。
例如,如果它位于 SQL 数据库中,则存在 SQL 注入的风险。您应该使用您所在环境的 SQL 转义函数。
例如,使用 php + mysql,您可以使用mysql_real_escape_string
. 大多数技术环境都提供了一种在持久化之前正确转义字符串的标准方法。
注射可能发生在两个地方。
因此,如果将其保存为 sql 服务器,则使用变量/参数* 保存,如果将其保存在 xml 中,则使用 HtmlEncode 保存。
当您看到该数据时,如果您在 html 页面上看到它们,请使用HtmlEncode,如果您只是在文本文件中读取它,那么不用担心 :)
有关 html 编码和反跨站点脚本库的更多详细信息:
从安全的角度来看,我们的 Web 表单是赤裸裸的并且 100% 易受攻击。我们需要查看数据传递给它们的所有方式并进行适当的测试:
* Form Fields
* URL Query Strings
* Cookies
* Database
* ViewState
最普遍的攻击形式似乎是脚本注入、跨站点脚本和 SQL 注入。至于 SQL 注入,这可以通过使用参数化查询来缓解。正是将数据库查询参数化的行为使存储过程对攻击具有如此的弹性。其他形式的脚本攻击可以通过在您的 Web 应用程序项目中下载和使用 Microsoft Anti-Cross Site Scripting Library 来处理。