为了使 Web 应用程序安全,要在 validation.xml 中过滤哪些特殊字符?
问问题
2038 次
2 回答
1
如果您主要关心的是 SQL 注入之类的事情,那么最好的防御就是使用参数化查询。
不幸的是,我唯一用作参考的文章是针对 iOS 和 Objective-c 的,但这里是Wikipedia entry on parametrized statements 。
于 2012-08-21T12:13:44.420 回答
1
从输入数据中过滤字符的原因是为了防止输入数据与不同编程或脚本环境中的控制语句“混合”的各种情况。
最典型的例子是 SQL 注入和跨站脚本。SQL 注入的一个示例是,如果您像这样创建 sql 语句:
sql = "select username where username = '" + username + "' and password = '" + password + "'"
并且用户提交用户名admin'(注意')
跨站点脚本的一个示例是一个论坛,其中有人使用此内容创建评论:
"Hi. This is a comment! <script> .. malicious javascript .. </script>"
还有其他几种变体。如果您使用用户生成的输入发送电子邮件,那么某人可能会在您的代码中插入电子邮件标题。如果您在操作系统命令行中使用用户生成的输入(即更改密码),那么其他人也可能会插入其他命令。
处理此问题的唯一安全方法是在创建 sql 语句、创建网页、发送电子邮件等时永远不要信任用户生成的输入。
但是,作为一种第一道防线,您可以过滤掉您知道用户在验证输入时不需要的常用字符。一个典型的列表将包含像 <>\;"&#^'`?% 这样的字符。注意!这不是一个详尽的列表,只是我脑海中的几个典型字符。
于 2012-08-21T19:36:07.143 回答