安全编程-XSS跨站脚本解答.ppt

IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * 下面的建议可以考虑采用,以保证敏感信息经过可靠加密 ? 不要自己创建加密算法。应使用已经被证明的公开加密算法,例如 AES,RAS 公钥 加密,和 SHA-256 或更好的 HASH算法。 ? 不要使用弱加密算法,比如 MD5/SHA1。建议使用更安全的加密算法,比如 SHA-256 或更其它的选择。 ? 保护好离线生成密钥和存储的私有密钥。不要在不安全的通道中传输私钥。 ? 确保基础的信任关系安全,比如数据库信任关系 (通过严格的文件系统权限和控制) 或安全加密,不容易被本地或远程用户解密。 ? 确保存储在磁盘上的加密数据不容易被破解。 IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * * * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * 在C 语言中,最好避免使用操作文件名的函数,因为你不能够保证在函数调用域之外的空间上,它指向的仍是硬盘上同一文件。所以应该首先打开该文件获得文件句柄,然后通过使用操作文件句柄的函数来进行操作。 IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * IBM Confidential * 漏洞:有3 种已知类型的 XSS:反射、存储和 DCOM注入。 反射 XSS 最容易被利用,某个页面直接将用户提交的数据返回给用户,如下 echo $_REQUEST[userinput]; 存储型 XSS 将恶意数据存储在文件、数据库或者其他后端系统里面,应用程序未将这些恶意 数据未经过滤就展示给用户。在 CMS、blog、论坛系统中,由于其他用户都可以看到互相输 入的内容,这种攻击是非常危险的。基于 DOM的 XSS 攻击,是因为站点的 javaScript 代码 和变量将被操纵,而不是 HTML 元素。 攻击者可以选择单独采用一种方式攻击或三种方式混合攻击。跨站脚本的危险性并不是这种 攻击类型,而是它攻击的灵活性。攻击者通常利用 javascript 进行攻击。攻击者可以使用 javascript向用户展示页面的任何方面,包括增加新的元素(比如增加转向一个恶意站点的login 页面),或删除、修改页面的展示。 IBM Confidential * 防范方法:最佳的 XSS 防范方法是对所有输出到页面的数据进行合适编码 如何在一个应用程序中完全阻止 XSS: ? 输入验证。使用一个标准化的验证方法,在所有输入数据被存储或者显示给用户之 前,验证所有输入数据的长度、类型、语法和逻辑,使用“只接受允许类型的数据” 策略,直接在服务端拒绝所有无效的输入,而不要试着对输入的恶意的数据进行清 理。不要忘记页面提示的错误消息也可能包含恶意数据。 ? 强壮的输出编码。在页面显示给用户以前,需要保证用户提交的所有数据都经过了 合适的编码。 ? 不建议采用“黑名单”验证去检测 XSS 输入和输入。检验和替换少数字符(“”””和 其他的相似字符、或者类似”script”的短语)的方法已经被证明是不能防止 XSS 的。甚 至一个未经检查的”b”标记在一些内容中都是不安全的。XSS 可利用的变量非常 多,如果采用黑名单验证,是非常容易绕过的。 ? 提防规范化错误。输入信息在被验证之前可能被解码,并且规范成应用软件当前使 用的内部表达式。请保证你的应用软件没有将输入数据进行两次同样的解码。 IBM Conf

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档