您的位置:首页 > 其它

日常编码中需注意的信息安全问题

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加密保存到数据库。

重置密码使用相同手段,以此可以保证密码不会被泄露。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  信息安全