1. SQL Injection<SQL注入攻击>
在Java中, 使用PrepareStatment是不可能产生这样的攻击的, 通常这类攻击产生是由于程序员借助一些API,或者配置文件, 动态的修改SQL语句造成的。 如果程序员不对输入的参数不做检查或者转义编码, 就可能产生SQL攻击。 防范这个问题的最简单的办法是, 不要使用用户输入的参数组装SQL语句。 这可能有点凹口。 实际上这类问题通常发在类似的操作上, 使用like, order by等操作上。 这2个语句最容易产生SQL注入:
select * from table_a where table_a.col like '%$name$%'
如果用户输入: ';select * from sys
组装完SQL后, 变成了
select * from table_a where table_a.col like '%';select * from sys%'
所以, 后面的东西变成什么恶意的SQL, 那么问题就来了。 如果是DDL语句,后果自己想。
例子很多的, 但是, 一个原则, 不要动态的手动组装SQL语句。
2. XSS攻击<跨站脚本>: 攻击者在页面中注入具有恶意js或者html代码,从而完全控制用户浏览器。如果你的web应用必须支持用户提供的HTML,那么应用的安全性将受到灾难性的下滑。但是你还是可以做一些事来保护web站点:确认你接收的HTML内容被妥善地格式化,仅包含最小化的、安全的tag(绝对没有JavaScript),去掉任何对远程内容的引用(尤其是样式表和JavaScript)。
对于非HTML的输出, 必须使用HTML ESCAPED来转义输出内容。
3.安全控制
在很多网站上, 有很多UPDATE、 DELETE、INSERT的操作, 但是, 由于程序员的忽略, 这些操作没有限制用户操作权限。
比如 http://sdh5724.iteye.com/admin/blogs/deleteblog?id=12345
SQL 写成了 delete from blog where id=12345
那么有用户把12345 修改为 54321就可能删除别人的文章了。 这个安全因素在非常的网站都存在。从授权角度来来说, 这个SQL写成 delete from blog where id=12345 and memberid='sdh5724' 这样就安全了。
这个问题的变形是很多的。 开发的时候需要注意。
4. CSRF攻击,伪造客户端请求的一种攻击,CSRF的英文全称是Cross Site Request Forgery,字面上的意思是跨站点伪造请求
主要如下:
1. 没有验证用户http请求的方式 POST 或者 GET,GET请求被合法通过!
2. 没有验证表单来源的唯一性,不能识别是合法的表单提交还是黑客伪造的表单提交!
这个问题主要是要防止构造一个FORM表单提交,通过为FORM表单增加一个检查字段<session token>. 提交的时候, 确定该session token是否是该用户生产的。 session token可以保存在cache,数据库, 或者sesion中。
大约目前Web攻击就这些类型, 但是都是非常复杂的。 需要仔细的研究才能明白。说的解决办法都是简易的。 如果要一个完全的解决办法,最好咨询安全工程师或者小黑们。
分享到:
相关推荐
标题 "JavaEye博客文章——深入理解HTTP你的游戏" 这篇博客文章是关于深入理解HTTP协议的,作者通过"你的游戏"这个实例,详细讲解了HTTP在实际应用中的运作机制,特别是对于游戏开发而言的重要知识点。HTTP(超文本...
-- 配置集群的时候,要用到,在这篇文章:“apache+tomcat集群、负载均衡及session复制”里的第三条(http://jiajun.javaeye.com/admin/blogs/278586) --> <distributable/> <!-- context-param 元素用来设定...
网址:http://www.javaeye.com/ JavaEye曾是中国最大的Java技术社区之一,虽然目前可能已不活跃,但其存档的大量技术文章和讨论仍具有很高的参考价值。对于希望了解过去Java技术趋势和发展历史的开发者来说,这是一...
http://peterwei.javaeye.com/blog/968815 Ubuntu10下JDK1.6安装 http://peterwei.javaeye.com/blog/968758 Ubuntu10下Tomcat7安装 http://peterwei.javaeye.com/blog/968774 Ubuntu10下Eclipse3.6安装 ...
3. **Hadoop部署与升级**:`http://www.slideshare.net/steve_l/dynamic-hadoop-clusters`, `http://zkl-1987.javaeye.com/blog/365172`, `http://www.javaeye.com/topic/365172` - 提供了Hadoop集群部署的最佳实践...
- Maven的中文手册可参考[http://www.juvenxu.com/mvn-def-guide/](http://www.juvenxu.com/mvn-def-guide/)和[http://juvenshun.javaeye.com/5](http://juvenshun.javaeye.com/5)。 **5. Maven项目导入Eclipse** ...
- 1.1 final 版: [http://fins.javaeye.com/blog/54265](http://fins.javaeye.com/blog/54265) - 1.1 RC1 版: [http://fins.javaeye.com/blog/51068](http://fins.javaeye.com/blog/51068) - 1.0 RC1 版: ...
http://comsci.javaeye.com/ JWFD工作流设计器(带引擎算法)的源代码包, 实在不好意思,这个包的资源文件缺失了,导致编译时报错,经过反馈, 修改了这个问题,在资源中新增加下载,本下载停止使用,非常抱歉 请...
3. **JavaEye论坛(http://www.javaeye.com/forums/tag/Android)**:虽然JavaEye论坛已经关闭,但其存档的Android相关帖子仍然具有很高的参考价值。 4. **Android123论坛...
- **JavaEye**(http://www.javaeye.com/): 早期的Java技术社区,虽然现在已不活跃,但曾经是中国最大的Java开发者聚集地之一。 - **ITEER**(http://www.iteer.net/): 覆盖了IT行业的多个方面的综合技术社区。 - ...
5. **JavaEye([http://www.javaeye.com/](http://www.javaeye.com/))** - **特点**:这曾经是Java开发者非常活跃的一个社区,虽然现在已不再更新,但其历史资料仍然具有很高的参考价值。 - **适用人群**:适合...
Flex + Hessian 学习笔记(一) http://wangcheng.javaeye.com/blog/141382 Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) ...
9. **[JavaEye招聘](http://www.iteye.com/javaeye)**:由JavaEye社区提供的招聘服务,适合寻找Java相关职位的人士。 10. **[广东程序员人才网](http://www.gdjob168.com/)**:专门针对广东省地区的招聘网站,适合...
6. **HTML5和CSS3资源分享**([http://www.javaeye.com/news/16684-html5-css3](http://www.javaeye.com/news/16684-html5-css3)) - 分享了一些高质量的HTML5和CSS3资源链接,有助于开发者扩展视野。 7. **CSS3...