24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

常州软件开发培训班
网站首页 > 软件开发资讯 > 行业资讯

WEB开发常见的安全问题

2017-08-20 11:40:26 东方博宜 阅读

1WEB安全

大的原则:一定要相信自己的软件有漏洞,一定要相信自己的软件有被入侵的价值!!!

 

A、密码的存储

禁止弱口令存储、禁止明文存储!

让每个用户都有一个随机的几位数的秘钥,混合用户注册时的密码存储!

Js脚本检测密码的安全度!

 

B、越权访问

情况一:没有登陆直接访问内页链接(解决:过滤器)

情况二:登陆后敲链接访问没有权限访问的页面(或者数据,比如,假设访问某篇文章http://127.0.0.1:8080/news/p.action?pid=23

解决:

aurl参数统一加密(对称加密)

b、该有的权限校验要有!!!(可以用过滤器、拦截器进行校验)

 

注意:如果是安全性要求较高的系统,配置文件里面的核心信息最好加密!

 

Cjsp页面报错

配置错误页面,让程序出错后跳转!

 

DSQL注入

a、页面:js脚本验证数据的有效性

b、无论JDBC还是Hibernate都不要直接拼sql将参数连接:

String sql = “select * from user where username=’”+ username +”’ and password=’” + password + ”’”;

 

采用PrepardStatement或者Hibernate的参数化查询来避免!

 

c、定义方法(过滤器)对参数进行转义!

‘ –> \’


E、非法的参数或者需要转码的参数的处理

比如:有人提问:输入框应该怎么写? 某用户回答:<input type=’text’>,如果直接将这个数据存储在数据库,拿到再显示在页面上会变成输入框!

<a href='http://www.baidu.com'>baidu</a><script>

->

&lt;a href='http://www.baidu.com'&gt;baidu&lt;/a&gt;&lt;script&gt;

 

可以直接使用类似百度编辑器KindEditor之类的现成的编辑器!

 

 

F、不要依赖js的检验能力,js是非常容易被绕过去的一种检验

原则来上说js是需要添加的,但重要的信息,服务器端依然需要校验!!!

 

G、如何防止用户伪造页面?

如:用户自己下载我们的登陆页面,然后修改部分信息,自己在本地提交!

session存储一个标记防止伪造!

 

注意:如果用户登陆成功,没有关闭浏览器且session没有超时的情况下,再次访问登陆页面,应该不需要登陆!

 

H、数据库的安全性问题

一般情况下数据库不要打开允许远程访问的功能!

数据库一般都不用root账户运行项目,而是配置需要访问的数据库、表以及需要的权限!


图片.png


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2017 www.czos.cn