我正在尝试创建一个servlet请求过滤器,它根据白名单字符过滤任何传入的请求。
我只想接受那些与白名单模式匹配的字符,以避免攻击者以脚本或修改过的URL的形式执行任何恶意代码。
有谁知道应该使用哪些白名单字符来过滤任何HTTP请求字符串?
任何帮助将不胜感激
先谢谢
答案 0 :(得分:0)
使用RegEx ..实现模式匹配机制,从URL模式中查找白名单字符。
按照 link1
进行操作或者您可以尝试:
if (inputUrl.contains(whiteList)) {
// your code goes here
}
或者如果你需要知道它发生在哪里,你可以使用indexOf:
int index = inputUrl.indexOf(whiteList);
if (index != -1) // -1 means "not found"
{
...
}
谢谢,
<强>〜CHANDAN 强>
答案 1 :(得分:0)
问题是“恶意”是非常广泛的术语。你应该清楚地知道你想要保护哪种类型的攻击,然后采取措施来防止它。
您无法指定一般需要过滤的字符集,您需要知道将在其中使用您的url输入的域。通常危险的不是url本身,而是url参数,这些参数由用户提供,然后由应用程序解释。根据应用程序使用此输入的方式,您需要采取特定的预防措施。例如:
等等......
关键是,没有银弹可以保护您免受所有恶意攻击媒介的侵害,特别是不能通过将servlet过滤器中的某些字符列入白名单来保护您。您应该知道在哪里使用潜在的恶意数据并在考虑其特定用途时对其进行处理,因为不同的目标将具有不同的漏洞,并且需要不同的保护措施。
安全问题的高级概述的良好开端以及针对这些问题采取措施的措施是OWASP TOP TEN。然后我推荐一些由owasp提供的更详细的指南和资源。