0

您是否知道任何好的编码约定可以快速警告程序员某些变量(或配置条目等)包含用户提供的内容?我正在尝试提高对将未转义内容粘贴到 HTML/JavaScript/HTTP 中的几种攻击媒介(如 XSS)的认识。

例如:

String UserName_UNTRUSTED = readUrlParam("username");

补充说明: 我专门寻找 Java 编码约定。

4

2 回答 2

1

GWT 使用像SafeHtml这样的类。

只要正确创建了 SafeHtml 实例,这将使用 Java 的强类型来帮助防止未转义的用户内容到达页面。有多种方法可以转义、连接和使用安全常量。通过以一致的方式使用 SafeHtml,可以更轻松地跟踪变量的来源以及需要转义的内容。

相同的想法可以用于一般的 Java 程序。

于 2012-11-30T14:26:07.290 回答
1

一个不错的选择是:

来自用户的所有字符串都必须存储在变量(或数据库列)中,其名称以前缀“us”(表示不安全字符串)开头。所有经过 HTML 编码或来自已知安全位置的字符串都必须存储在名称以前缀“s”(安全字符串)开头的变量中。

这取自 Joel 关于命名约定的帖子,您可以阅读全文: http ://www.joelonsoftware.com/articles/Wrong.html

于 2012-11-30T13:54:53.360 回答