background image

(*) 输出到页面上的所有内容都要转义

(*) 输出 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 时,要禁止输入的头信息中的换行

删除所有外部输入中的换行

邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)

(*) 不使用外部参数作为邮件头信息

必须用外部参数设置头信息时,要删除其中的危险字符。