javascript - asp.net 中的 HTML 标记注入(inject)

标签 javascript c# jquery asp.net security

我的安全团队报告了以下代码的一个 html 标签注入(inject)安全问题

 function ClosePopUp(objBhID) {
        var pageName = window.location.pathname;
        var modalPopupBehavior = $find(objBhID);
        if (modalPopupBehavior != null && modalPopupBehavior != 'undefined') {
            modalPopupBehavior.hide();
        }
        if (objBhID == 'bhThankMsg' && pageName == '/Projects/Comm.aspx') {
            var objPartnerID = '<%=Request.QueryString["partnerid"]%>';
            if (objPartnerID != 'undefined' && objPartnerID != null && objPartnerID != '') {
                window.location = '/Projects/Comm.aspx?Id=<%=Request.QueryString["ID"]%>&partnerid=<%=Request.QueryString["partnerid"]%>';                
            }
            else {
                window.location = '/Projects/Comm.aspx?Id=<%=Request.QueryString["ID"]%>';
            }
        }
    }

我的安全团队报告了以下问题 enter image description here

在此 Web 应用程序中发现了 HTML 标记注入(inject)漏洞。 HTML 标记注入(inject)用于帮助跨站点请求伪造和针对第三方网站的网络钓鱼攻击,并且通常可以兼作跨站点脚本漏洞。建议包括实现安全编程技术以确保正确过滤用户提供的数据,并对所有用户提供的数据进行编码以防止插入的脚本以可执行的格式发送给最终用户。

我的要求是我不想让任何用户或黑客注入(inject)不必要的数据,如何实现?

最佳答案

<%= HttpUtility.UrlEncode( Request.QueryString["ID"] ) %>

关于javascript - asp.net 中的 HTML 标记注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862504/

相关文章:

javascript - Jquery UI 对话框不会消失

javascript - Reactjs 在循环中重新渲染组件

php - IE 中元素为空值

javascript - 使用 momentjs,如何找到一个月中特定日期的工作日编号,以及给定月份中有多少个工作日

javascript - 正则表达式错误地使用户输入无效

c# - Xamarin Forms (IOS) 中的图像 slider CarouselView 问题

c# - 为什么 Convert.ToString( (sbyte)-128, 2) 在前面添加 1?

jquery - 获取不同列中的复选框值

jquery - Owl Carousel 在页面加载时闪烁

c# - Signalr - 重写发送消息的方法