从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然。直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库。还好,我还没有用root级的用户连接数据库。不过也没有什么用了,因为我的懈怠用户表的帐号密码没有加密。对方可以很容易的进入网站后台为所欲为了。更让我郁闷的是文件上传我没做类型限制,唉,不用说了上传一个webshell文件。可怜的服务器成了赤裸羔羊。回过头来痛定思痛,决定重新规范web开发的安全标准,总结如下。

1.绝对绝对绝对要采用预处理的方式来进行sql操作,如果实在需要做sql语句的拼接,那么请做输入信息的过滤。selet,update,delete,insert,and,%,',_,这些都屏蔽了吧。

2.一般的sql注入都是从网站的前台网页寻找漏洞,建议针对前台操作和后台操作分别建立数据库操作用户。前台的用户只赋予实际需要的基本权限。后台用户可权限可以宽松些但也只能针对当前库。切不可用root级别的用户作数据库连接。否则数据丢了,你都没地方哭去。

3.用户登录表的密码一定要加密,如果可以也可将用户名一并加密。这是以防万一的最后手段,当对方看你的用户登录表的时候起码看到也不知道是什么。

4.jsp文件集中放到指定的文件夹下,如果你使用struts那么你可以将struts使用的文件放在WEB-INF目录下的某个文件夹中,因为该WEB-INF文件夹网站浏览用户是看不到的。

5.文件上传一定要做类型检查,一些jsp,php,asp等程序文件坚决不能让其上传。如果你用的是linux 下apache+tomcat 做的jk连接,你可以将文件直接上传到apache目录,或者用ln作软连接,万一对方上传了jsp文件你没判断出来,那么也是传到了apache目录下,你在jk指向中

将jsp文件指定到tomcat中某一文件夹,对方在浏览器中是无法访问上传的jsp文件的。

6.日志,建议增加服务的访问日志,记录来访者的IP,传递参数,对后台操作用户建立日志,记录其操作内容。完善的日志记录可以帮助你发现潜在的危险,找到已经发生的问题。

临时想到这么多,写的很粗糙以后再慢慢补充完善。最后忠告我的程序员朋友,做人要低调,做事要踏实,这年头随便一个网民登陆个黑客软件就没准吧你黑了。当你发现黑你网站的那个人不过是个业余网民,相信你一定有被小baby暗算,恨不能找块豆腐撞死的感觉。算了不说了,总之低级问题总会出在懈怠的时候,所以精神点。

最新文章

  1. arcengine中自定义工具和自带工具条(ICommand)点击后和其他工具使用的冲突
  2. spi_flash
  3. linux包转发开发
  4. mysql 授权 打开全部
  5. QFII
  6. 页面动态数据的滚动效果——jquery滚动组件(vticker.js)
  7. ContentResolver + SqliteOpenHelper + ContentProvider 理解
  8. TensoFlow实现条件语句
  9. Devexpress常见问题
  10. MyBatis异常:元素内容必须由格式正确的字符数据或标记组成
  11. 《CSAPP》读书笔记
  12. CentOS7 网络NAT模式
  13. Windows下pip安装及更新出现“UnicodeEncodeError: 'ascii' codec can't encode character u'\u258c' in position 8: ordinal not in range(128)”问题解决办法
  14. Java知多少(41)泛型详解
  15. pfSense软件防火墙安装配置
  16. xdoj-1319 求树上任意一点的最大距离----利用树的直径
  17. openssl - cookbook
  18. nginx 两台机器 出现退款失败问题
  19. Makefile文件中的sed介绍
  20. “Invalid configuration file. File "I:/My Virtual Machines/Windows XP english Professional/Windows XP Professional.vmx" was created by a VMware product

热门文章

  1. 关于jackson处理数据
  2. Linux覆盖率一点研究:获取覆盖率数据
  3. ReportViewer中修改rdlc图表中显示的数据
  4. 一个文件夹可以link 到另外一个文件夹
  5. extJS起步
  6. JavaScript侧边悬浮框
  7. 深入理解javascript--笔记
  8. 第七章 LED将为我们闪烁:控制发光二极管
  9. underscore.extend.js
  10. 在Visual Studio中设置多核并行编译