1.首先应该把精力放到对所有用户提交内容进行可靠的输入验证上。这些提交内容包括URL、查询关键字、http头、post数据等。只接受在所规定长度范围内、采用适当格式、所希望的字符。阻塞、过滤或者忽略其它的 任何东西。
2.保护所有敏感的功能,以防被bots自动化或者被第三方网站所执行。实现session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查。
3.web应用必须支持用户提供的HTML,那么应用的安全性将受到灾难性的下滑。但是你还是可以做一些事来保护web站点:确认你接收的HTML内容被妥善地格式化,仅包含最小化的、安全的tag(绝对没有JavaScript),去掉任何对远程内容的引用(尤其是样式表和JavaScript)。为了更多的安全,请使用httpOnly的cookie。
收起以下几点供参考:
1, 在HTML/XML中显示“用户可控数据”前,应该进行html escape转义。
2,在javascript内容中输出的“用户可控数据”,需要做javascript escape转义。
3,对输出到富文本中的“用户可控数据”,做富文本安全过滤(允许用户输出HTML的情况)。
4,输出在url中的数据,做url安全输出。
5,在给用户设置认证COOKIE时,加入HTTPONLY
6,在style内容中输出的“用户可控数据”,需要做CSS escape转义。
收起