软件应用程序安全开发指南(SDLC)(11)
2023-06-18 来源:飞速影视
7、 时刻进行边界检查。建议使用一些检查工具:Purify、Stackguard等检查代码,保证没有缓冲区溢出的问题。
3.2.4.格式化字符串安全
1、 使用固定的格式化字符串,或者来自可信源的格式化字符串。
2、 要检查并限定locale的请求为合法值。
3、 不能将用户输入直接作为格式化字符传给格式化函数。
3.2.5.整数溢出安全
1、 对于涉及到内存分配大小的计算,要进行仔细检查,确保计算不会产生溢出。
2、 对于涉及到数组索引的计算,要进行仔细检查,确保计算不会产生溢出。
3、 要使用无符号整数表示数组偏移和内存分配大小。
3.2.6.SQL注入代码安全
1、 要检查输入的有效性和可信度。
2、 要使用参数化的查询、占位符、或者参数绑定来构造SQL语句。
3、 要在程序之外存储数据库的连接信息,比如经过保护的配置文件或者
Windows注册表。
4、 即使使用的是存储过程,也不能使用字符串连接来构造SQL语句。
5、 不能在存储过程内部使用字符串连接来构造SQL语句。
6、 不能在存储过程内部执行不可信的参数。
7、 不能简单地双写单引号或者双引号。
8、 不能使用高权限账号连接数据库,比如sa或者root。
9、 不能在程序或者连接字符串中存储登录口令。
10、 不能在Web根目录下存储数据库配置信息。
11、 应从数据库中删除对所有用户自定义表的访问权限,同时只对存储过程授权,然后使用存储过程以及参数化的查询来构造查询字符串。
3.2.7.命令注入代码安全
1、 在输入命令传递给命令处理程序之前要进行验证。
2、 如果输入验证失败,要安全地处理失败信息。
3、 不能向任何命令解释器传递未验证的输入信息,即使这些输入仅仅是数据信息。
4、 避免使用正则表达式来进行输入验证,应手工去写一些简单而又清晰的验证代码。
3.2.8.异常处理代码安全
1、 要检测每个安全相关函数的返回值。
2、 对于每一个更改用户设定或者及其设定的函数,都要检查其返回值。
3、 要有从错误条件中进行恢复的考虑,避免拒绝服务攻击。
4、 不能一次性处理所有的异常,要将异常情况进行分类处理,避免在异常处理代码中的漏洞发生。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号