脚本安全搜索框的应用程序

时间:2015-05-28 15:59:33

标签: java javascript security javascript-events

我正在使用Java MVC做一个Web项目,它有一个搜索框。我从这个文本框中获取搜索字符串,然后调用Javascript搜索脚本方法。它又调用Web服务进行搜索。现在,如果我搜索像:

这样的脚本
<script>alert("helllooooo")<\script >

然后它会警告helloooo以及使用服务进行搜索。在这种情况下,如何避免评估脚本。

3 个答案:

答案 0 :(得分:0)

在将输入发送到您的网络服务或搜索之前,您必须清理输入。

通过清理它意味着从输入字符串中转义所有HTML和Javascript标记。

检查Apache StringEscapeUtils课程,了解escapeJavaescapeJavascript等方法。您必须在网络服务端执行此操作。 如果你想在javascript端本身发生这种情况,你将不得不编写一个Javascript函数,它将显式地转义HTML和JS特殊字符(特别是标记)

答案 1 :(得分:0)

此处有一个跨站点脚本(XSS)漏洞。您需要进行服务器端转义以防止利用。这个question有几种可能的解决方案。您也可以参考OWASP XSS Cheat Sheet

客户端转义不足,因为攻击者在执行攻击时会绕过客户端代码。

答案 2 :(得分:-1)

您可以替换&lt;和&gt;像这样:

var html = document.getElementById("searchboxid").value;
html = html.replace(/</g, "&lt;").replace(/>/g, "&gt;");