(*) 输出到页面上的所有内容都要转义
(*) 输出 URL
“
时仅允许以 http://” “
或 https://”开头的 URL
(*) 不要动态生成<script>…</script>的内容
(*) 不要从外部网站读入样式表
检查输入内容
允许输入 HTML 内容时的解决方法
(*) 解析输入的 HTML 内容,生成解析树,然后提取其中的非脚本部分
使用脚本删除输入的 HTML 内容中的相关字符串
通用解决方法
(*) 应答的 HTTP 头重指定 Content-Type 的 charset 属性
为避免 Cookie 情报泄漏,应禁止 Trace 方法,并对所有 Cookie 设置 HttpOnly 属性
跨站请求伪造(CSRF)
(*) 所有页面都通过 POST 来访问,在前一页面的 hidden 中随机生成一个信息,提交后的
页面检查该信息,正确时才予以执行
(*) 执行业务之前再次要求输入密码
(*) 确认 Referer 是否正确,只有正确时才执行
执行重要操作时,向预先设置的邮件地址中发送邮件
HTTP 头注射
(*) 不直接输出 HTTP 头,而使用运行环境提供的头信息输出 API
(*) 无法使用 API 时,要禁止输入的头信息中的换行
删除所有外部输入中的换行
邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
(*) 不使用外部参数作为邮件头信息
必须用外部参数设置头信息时,要删除其中的危险字符。