软件应用程序安全开发指南(SDLC)(8)
2023-06-18 来源:飞速影视
3、 数据在转换过程中,应采用通用的标准格式,应考虑相关的不同系统和不同应用的格式需求。
4、 数据处理过程应提供处理数据的状态信息和数据处理过程的动态信息。
5、 数据处理过程应具备异常处理功能,在任一环节发现问题,均应能及时回退,必要时可以人工处理。
6、 数据处理的中间过程和中间结果不能暴露给第三方。
3.应用系统编码安全
3.1.基本代码安全要求
3.1.1.输入验证
对函数入口参数的合法性和准确性进行检查,具体如下:
在B/S环境下,应进行服务端的验证而不仅仅是客户端的验证(例如基于Javascript的验证)。通过在客户端和服务器之间放置一个代理服务器,可以很容易绕过客户端验证。有了代理服务器,攻击者可以在数据被客户端"验证"后修改数据(与"man-in-the-middle"攻击类似)。
在实际的校验中,输入校验首先定义一个有效(可接受)的字符集,然后检
查每个数据的字符是否在有效范围内。如果输入中包含无效的字符,应用程序应
该返回错误页面并说明输入中包含无效字符。这样进行验证的原因是定义无效的字符集比较困难,并且一些不应该有效的字符通常不会被指出。
另外,边界检查(例如字符串的最大长度)应该在字符有效性检查以前进行,边界分析可以防止大多数缓冲区溢出漏洞。
从环境变量获得的数据也需要进行验证,同时避免在环境变量中存放敏感数据(例如密码)。
3.1.2.SQL语句
如果应用程序需要连接后端数据库,使用存储过程而不能在代码中使用SQL
语句,使用程序以外的嵌入在代码中的SQL语句调用特别危险,难以防止攻击
者使用输入域或者配置文件(由应用程序载入)来执行嵌入式的SQL攻击。当然,输入验证有助于缓解这种风险。
3.1.3.注释代码
当应用程序在实际环境中开始应用时,应该删除所有的注释代码。注释代码
是用来调试或者测试的,它们不是最终应用程序的一部分。无论如何应该在实际
的环境中删除它们以避免意外的执行(一般注释标识被删除后就无法激活休眠的代码,但还是存在可能性的,所以强烈建议执行这项工作)。
3.1.4.错误消息
所有为用户显示的错误信息都不应该暴露任何关于系统、网络或应用程序的
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号