为什么会触发此Javascript警报?
我一直在研究如何防止XSS攻击,因此在将值呈现回客户端时对其进行编码。这可以正常工作,但是当将该值放入.NET runat服务器输入中,并在客户端上按如下方式呈现时,即使javascript已编码,也会触发警报为什么会触发此Javascript警报?,javascript,asp.net,xss,Javascript,Asp.net,Xss,我一直在研究如何防止XSS攻击,因此在将值呈现回客户端时对其进行编码。这可以正常工作,但是当将该值放入.NET runat服务器输入中,并在客户端上按如下方式呈现时,即使javascript已编码,也会触发警报 <input name="ctl00$body$buildTitle" type="text" value="&lt;script&gt;alert(&#39;Hola&#39;)&lt;/script
<input name="ctl00$body$buildTitle" type="text" value="&lt;script&gt;alert(&#39;Hola&#39;)&lt;/script&gt;" />
有人能解释一下原因吗?因为您在客户端浏览器上呈现了一个脚本块。
无论您将脚本块放置在何处,浏览器都会运行脚本。不会触发JS:如果我在本地渲染它,它不会为我触发-而且,我认为放置在
输入中的脚本不会由浏览器执行?(转义或不转义)是的,我在JSFIDLE上尝试过,并注意到了同样的事情,尽管这肯定发生在我的网站上,并且这是源代码中包含的唯一警报,或者有东西在将代码发送到浏览器之前正在转换该代码,或者您在某个地方还没有找到另一个警报。一定有一些代码(客户端或服务器端)实际读取输入值,然后通过文档将其呈现在html文档中。write
或appendChild()
,byResponse。write
或设置服务器端某物的Text
属性,或其他方法。从警报(“Hola”)更改;
到调试器;
并刷新。这将允许您使用浏览器的调试器检查堆栈跟踪。