日常编码中需注意的信息安全问题
2016-06-22 10:35
239 查看
1.编码
(1)拼写sql时,参数应使用占位符,防止sql注入
(2)异常信息不要返回给客户端,这样会暴露表结构信息
(3)url的命名,以SpringMVC为例,url中不要使用‘工程名/类名/方法名’的结构(例如xxxController),攻击者会根据url推测内部实现
(4)文件上传功能一定要过滤文件格式以及大小(一个比较合理的大小是100M以内)
(5)正式环境日志级别使用warn。调试时可任意更改,调试完成后恢复为warn
(6)去掉所有的// TODO
2.工具
(1)使用findbugs
(2)svn提交时,应该要求所有人填写注释,方便定位历史问题和版本维护
(3)服务器应禁止使用root用户
(4)代码混淆:代码混淆的目标是让反汇编够困难,让攻击者能够在攻击程序之前放弃(问题是开发者本身也难以维护)
①增加从不执行的代码
②分散代码
(5)混淆压缩js
3.密码
(1)凭证的有效期限制,比如要求用户每两个月更新一次密码
(2)密码的保存和传输需要加密。另外,尽量避免password、passwd、pwd关键字,防止被抓包
(3)密码强度校验,避免使用root、admin、123456等简单密码。如果是管理员账号,密码最好是随机产生的字母数字符号的随机组合(可以做一个密码生成器)。
(4)没有验证码,这种情况下攻击者可以重复发送认证请求(也没有做请求次数的限制),即:密码有可能被遍历到。
(5)增加账户管理或自助修改密码的模块
(6)设置资源过滤,比如WebContent下的‘a.log’可以直接访问。这种情况下,攻击者通过遍历路径,有可能获得本不能看到的文件。
(7)创建用户时,初始密码使用随机字符串,并将原始密码发送至用户邮箱,原始密码使用MD5加密保存到数据库。
重置密码使用相同手段,以此可以保证密码不会被泄露。
(1)拼写sql时,参数应使用占位符,防止sql注入
(2)异常信息不要返回给客户端,这样会暴露表结构信息
(3)url的命名,以SpringMVC为例,url中不要使用‘工程名/类名/方法名’的结构(例如xxxController),攻击者会根据url推测内部实现
(4)文件上传功能一定要过滤文件格式以及大小(一个比较合理的大小是100M以内)
(5)正式环境日志级别使用warn。调试时可任意更改,调试完成后恢复为warn
(6)去掉所有的// TODO
2.工具
(1)使用findbugs
(2)svn提交时,应该要求所有人填写注释,方便定位历史问题和版本维护
(3)服务器应禁止使用root用户
(4)代码混淆:代码混淆的目标是让反汇编够困难,让攻击者能够在攻击程序之前放弃(问题是开发者本身也难以维护)
①增加从不执行的代码
②分散代码
(5)混淆压缩js
3.密码
(1)凭证的有效期限制,比如要求用户每两个月更新一次密码
(2)密码的保存和传输需要加密。另外,尽量避免password、passwd、pwd关键字,防止被抓包
(3)密码强度校验,避免使用root、admin、123456等简单密码。如果是管理员账号,密码最好是随机产生的字母数字符号的随机组合(可以做一个密码生成器)。
(4)没有验证码,这种情况下攻击者可以重复发送认证请求(也没有做请求次数的限制),即:密码有可能被遍历到。
(5)增加账户管理或自助修改密码的模块
(6)设置资源过滤,比如WebContent下的‘a.log’可以直接访问。这种情况下,攻击者通过遍历路径,有可能获得本不能看到的文件。
(7)创建用户时,初始密码使用随机字符串,并将原始密码发送至用户邮箱,原始密码使用MD5加密保存到数据库。
重置密码使用相同手段,以此可以保证密码不会被泄露。
相关文章推荐
- Collabtive系统SQL注入实验
- PHP版CMS爆破工具
- 国家信息安全技术水平考试(NCSE)三级教学大纲
- 转自CISPS《十年安全售前的经验与大家分享》
- 网络与信息安全监控内容
- metasploit
- [转]为什么你要懂点信息安全
- 信息安全不可低估的30个细节
- 透视信息安全类专业 选择未来发展方向
- 第六届内网安全战略与技术论坛召开
- SOC 2.0:通向下一代安全运营的关键
- SOC 2.0:下一代安全运营中心先睹为快【转载】
- 安全基础信息安全不可低估的30个细节
- (摘录)信息安全
- 关于开展保险业信息系统安全检查工作的通知
- 2009年证券期货业网络与信息安全事件应急演练
- 奥运期间证券期货业网络与信息安全突发事件应急预案(二)
- 信息安全国家标准列表
- 员工信息安全守则
- 信息安全制度实施指南