保护我自己免受跨站脚本攻击

Ani*_*cho 5 .net asp.net xss request

我实施了一个 Request.QueryString["somestr"].ToString();

我通过这样做来压制跨站点脚本 HttpUtility.HtmlEncode(Request.QueryString["somestr"].ToString();

我还有一个问题,用户可以这样做:

myfriendlydomain.com/?somestr=';alert(WOO XSS SUCCEDED); test ='

我怎样才能防止这种情况发生?

按照要求:

//Code Behind
if(request.querystring["somestr"] != null)
{
  AffiliatesEmail = HttpUtility.HtmlEncode(Request.QueryString["somestr"].ToString();    
}

//Front End
<script type="text/javascript">
  //<![CDATA[
    /*** Do not change ***/
    var SomeVAR = {};
    SomeVAR.Tracking.Sale.orderRef = '<%= AffiliatesEmail %>';
  //]]>
</script>

<script src="https://www.somethirdparty.com/somejscript.js" type="text/javascript" defer="defer"> </script>
Run Code Online (Sandbox Code Playgroud)

这是我们的实施.之后的任何事情我都不相信是相关的.

小智 2

您可以使用JavaScriptStringEncode() 方法来清理字符串并对其进行编码以防止这种情况发生。

另一种方法是使用AntiXSS库。