我们使用jsp,servlets,bean和mysql数据库.我们不希望限制用户在表单字段上输入的字符.那么如何清理输入以及如何确保输出不会因恶意活动而更改.有没有办法在发送输出时我可以检查是否已经发送了额外的代码.就像假设有搜索输入字段 - 用户提供类似的东西<script>alert("I am here")</script>
.有没有我可以知道这是一个HTML标签.如果用户在链接字段中附加了一个额外的参数,那么就像之前和之后的检查一样,我可以为文档做一些额外的链接字段.
Kai*_*tsu 10
你真的应该允许用户输入尽可能少的HTML和/或javascript.验证和消毒这些东西的一个好方法是使用像OWASP AntiSamy这样的现成库.
另外,请查看OWASP Enterprise Security API,了解开发人员构建安全Web应用程序所需的一组安全方法.
您应该始终对从用户输入或可能包含无效字符的数据库等来源获取的数据进行基本的HTML转义.例如,<c:out>
JSP标记就是这样做的.这样,如果用户输入"<script> ..."
一个字段并再次打印它,它将被打印到HTML中"<script> ..."
.
小智 7
请jsoup
帮忙解决这个问题.无论你做什么,不要试图使用正则表达式或其他东西破解它,因为那样你就会遇到2个问题.:-)
有了jsoup
,您只需要一小段代码:
String safe = Jsoup.clean(unsafe, Whitelist.basic());
Run Code Online (Sandbox Code Playgroud)
您可以Whitelist
非常轻松地添加标记和属性,但我发现它不支持命名空间标记.
归档时间: |
|
查看次数: |
35852 次 |
最近记录: |