我的安全团队报告了以下代码的一个 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"]%>';
}
}
}
在此 Web 应用程序中发现了 HTML 标记注入(inject)漏洞。 HTML 标记注入(inject)用于帮助跨站点请求伪造和针对第三方网站的网络钓鱼攻击,并且通常可以兼作跨站点脚本漏洞。建议包括实现安全编程技术以确保正确过滤用户提供的数据,并对所有用户提供的数据进行编码以防止插入的脚本以可执行的格式发送给最终用户。
我的要求是我不想让任何用户或黑客注入(inject)不必要的数据,如何实现?
最佳答案
<%= HttpUtility.UrlEncode( Request.QueryString["ID"] ) %>
关于javascript - asp.net 中的 HTML 标记注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862504/