首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止经典ASP中的跨站脚本攻击?

如何防止经典ASP中的跨站脚本攻击?
EN

Stack Overflow用户
提问于 2021-06-30 17:10:31
回答 1查看 90关注 0票数 0

如何在经典的asp中防止跨站脚本?

我想防止客户端输入,如html标签和任何脚本标签在经典的asp文本框。

我正在尝试使用方法Server.HTMLEncode "Name= Server.HTMLEncode(Request.Form("txtName"))“,但是仍然像"Raj”一样在数据库中插入数据,并且这些数据也是按原样在文本框中检索的,但是我想在插入和检索时删除标签。

EN

回答 1

Stack Overflow用户

发布于 2021-07-03 14:23:32

您可以使用正则表达式完全删除HTML:

代码语言:javascript
复制
Function Remove_HTML(ByVal str)

    Dim RegEx : Set RegEx = New RegExp
    
        RegEx.Pattern = "<(?:[^>=]|='[^']*'|=""[^""]*""|=[^'""][^\s>]*)*>"
        RegEx.Global = True
        RegEx.Multiline = True
        RegEx.IgnoreCase = True
        Remove_HTML = RegEx.Replace(str,"")
        
    Set RegEx = Nothing
    
End Function

你是说Server.HTMLEncode没有对尖括号进行编码?这没有任何意义。你需要发布你的代码。

从数据库中插入、更新或选择用户提交的数据时,应始终在将数据包含在任何数据库命令中之前对其进行检查和清理。

如果您返回用户原始输入,例如在搜索页面上(为search_term找到的x result(s) ),则在返回之前应始终使用Server.HTMLEncode,如果您也填充搜索框输入或文本区域,请不要忘记使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68191789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档