软件应用程序安全开发指南(SDLC)(10)
2023-06-18 来源:飞速影视
成混淆、欺骗或恶意破坏的结果。
2、 检查用户输入数据的长度。即输入超出限定长度的数据,可能造成服务器端程序溢出。
3、 防止用户输入特殊字符改变SQL语义。即,输入含特殊字符的字串,篡改SQL语句的语义,可能造成SQL查询执行不该执行的操作,以此绕
过身份认证获取非法权限、甚至对数据进行破坏。
4、 限制用户能够访问的最顶层目录。即,编写对服务器端文件、目录操作的程序时应该注意限定此类程序能够访问的最顶层目录,防止用户构造输入字串借助程序功能访问服务器关键文件导致泄漏服务器敏感信息。
5、 对所有类型的用户输入都要做检查,并严格限定什么是合法的用户输入,限定一个合法输入的范围,同时过滤有可能造成危险的特殊字符。
6、 对不可信任域发送到可信任域的数据一定要进行检查。
7、 尽可能在服务器端完成用户输入检查,不能轻易相信客户端脚本的检查结果。即,虽然客户端的Script脚本能完成一部分的用户输入检查功能,
但这种检查的结果是不可信任的,攻击者可以自己制作表单程序绕过客户端脚本验证,将非法数据提交到服务器。
8、 在输入变为输出时,也要对特殊字符做检查和转换。
3.2.2.敏感数据的存放和传递安全
1、 敏感数据不能存放在Web页中。
2、 不能把敏感的数据存储在cookie、隐藏字段或者潜在地可能会被用户修改的地方。
3、 客户端向服务器端提交敏感数据应该经过加密(例如使用SSL),尽量不能明文传输。
4、 密码等敏感信息存放在数据库中应该加密,并采用健壮的加密算法。
5、 防止数据库被攻破后泄漏用户密码。
3.2.3.缓冲区溢出安全
1、 所有的输入都必须进行正确的有效性检测。
2、 必须保证数组没有越界,增加数组操作函数的边界检查。
3、 安全地使用字符串处理函数,慎用有安全隐患的字符串处理函数
4、 使用Format字符串的时候特别注意Unicode和ANSI的大小不一致的情
况。
5、 注意字符串结束符的保护。
6、 仔细研究库函数内部的缓冲区分配,明确其限制。不能使用realpath()
等函数,如果功能需要必须使用时,一定要检查试图规范化的路径的长度,确保其不长于MAXPATHLEN。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号