validation - IsValid()是否可以防御XSS?

标签 validation email url coldfusion xss

使用IsValid()验证电子邮件地址或URL格式是否可以防止XSS?指定其他格式时,它会否定XSS吗?

最佳答案

有效的URL仍可以包含攻击媒介:

<!--- No on CF9 --->
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123; DROP TABLE Products")#</cfoutput>

<!--- Yes on CF9: hex encoded ';DROP TABLE Products' --->
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123%3B%20%44%52%4F%50%20%54%41%42%4C%45%20%50%72%6F%64%75%63%74%73")#</cfoutput>

授予以上内容不是XSS攻击,但可以更改为使用攻击来更新列。

电子邮件验证似乎可以防止the attacks I could find

一般而言,isValid()有助于在数据类型为有限值(整数,SSN,UUID等)时防止XSS攻击。但是,there's a laundry list of documented potential attacks针对本身唯一数据类型为“字符串”的字段。在这种情况下,isValid()毫无帮助,而OWASP's AntiSamy是用于此目的的有用工具,它可以遍历DOM并删除未列入白名单的任何内容。

Best regex to catch XSS (Cross-site Scripting) attack (in Java)?提供了有关XSS预防一般主题的许多有用信息。

最后要弄清楚这一点,请使用:
<cfqueryparam cfsqltype="..." value="...">

to protect queries

更新

最后但并非最不重要的,OWASP XSS Cheat Sheet:最好的启发式方法集,用于处理输入以防止XSS。

关于validation - IsValid()是否可以防御XSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550668/

相关文章:

javascript - 无论如何在javascript中实现XOR

c# - 使用 Validator 时忽略 .NET 4 RTM MetadataType 属性

javascript - 验证器 Node 模块中出现类型错误

php - Swiftmailer 隐藏来自 MySQL 数据库的用户电子邮件

ios - 让 UITextField 更改 Webview URL

ios - 在 GET 请求中传递 JSON 对象 : iOS

ruby-on-rails - rails : Validating association after save?

linux - 如何从脚本中发送电子邮件?

sql - 将存储过程传递给 sp_send_dbmail

linux - Imagemagick ftp 和空间