在我的网络应用程序中,URL由JavaScript组成。这是Servlet的URL。 此网址包含< >导致第三方应用程序(SiteMinder)显示XSS警告& URL未加载。
我是Java&网络编程。在网上搜索之后,我开始知道应该使用HTML实体来解决这个问题。
不知道如何做到这一点,我使用JavaScript string replace()函数替换,如下面的代码所示,
txtvar = encodeURIComponent(document.form1.txt1.value);
txtvar = txtvar.replace(/%3C/g,"<");
txtvar = txtvar.replace(/%3E/g,">");
txtvar = txtvar.replace(/'/g,"'");
txtvar = txtvar.replace(/%22/g,""");
它在Internet Explorer中运行良好,但在Chrome&amp; Firefox浏览器。不确定,但我怀疑&amp; URL中的(&lt;&gt;)会导致Chrome&amp; Firefox认为接下来是一个新的键值对&amp;被扯掉了。
Chrome&amp;中是否有任何设置Firefox让它像IE一样工作?我不明白为什么它在Firefox&amp; Chrome在IE中运行良好。
然后我尝试了逃避&amp;在&lt;和&gt;与%26,
txtvar=txtvar.replace(/&/g,"%26");
它允许加载URL但在servlet中我获得的是<
或>
而不是<
和>
。它没有正确解释它们。
对此有任何帮助表示赞赏。
谢谢, Awadhoot