我有一个页面,我想接受GET参数中的电子邮件地址.如果我使用FILTER_VALIDATE_EMAIL,我仍然容易受到xss和javascript注入攻击,等等?
我不是在问这是一个好的,还是足够好的电子邮件地址验证器.我想知道是否仍然可以通过它传递的任意字符串注入错误的Web代码 - 我是否需要进行额外的过滤以防止这种情况发生?
是的,有效的电子邮件地址可以用作一些精心设计的字符串的容器.
摆脱"过滤"的心态,进入"逃避"的心态.通用的"安全"过滤器根本不存在.
例如,如果电子邮件地址将输出到纯文本文档,则不需要执行任何操作.如果将其作为文本节点输出到html文档中,则需要对html特殊字符和权限进行转义.如果它被放入一个html文档中,并且它的值将在html属性中,那么需要非常小心地执行转义,这将取决于上下文.如果它在sql查询中使用,则需要通过数据库特定的转义函数进行转义.等等.
这完全取决于使用环境,而不是字符串的内容.这适用于所有事情(不仅仅是电子邮件或其他用户输入),它不仅仅是安全问题,而是编程正确性的问题.
fyi,我记得允许引用字符串的电子邮件地址规范,所以类似的东西"<script>alert('xss')</script>"@example.com是有效的.可能性是显而易见的.
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |