本文不是教你怎么防御, 是让你知道有这么一回事情。 安全的问题很深入, 知道有这些后,才能深入学习。
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攻击就这些类型, 但是都是非常复杂的。 需要仔细的研究才能明白。说的解决办法都是简易的。 如果要一个完全的解决办法,最好咨询安全工程师或者小黑们。
分享到:
相关推荐
WEB开发中常见安全漏洞分析与预防策略
Web 应用程序开发安全指南 Web 应用程序开发安全指南是指导 web 应用程序开发,以减少系统的安全漏洞,提高安全性的重要指南。本文档从各方面说明了设计开发是应该遵循的原则,旨在帮助开发人员和结构设计人员更好...
本规范旨在为Web开发人员提供一个全面、系统且实用的安全开发框架,以JSP/Java编程语言为例,涵盖了Web设计安全、Web编程安全以及Web配置安全三个关键领域。通过结合最佳实践和控制基础(如CBB,可能指的是...
在Web安全开发中,有以下几个核心知识点: 1. **SQL注入**:这是最常见的Web应用漏洞之一,攻击者通过输入恶意的SQL代码,获取、修改或删除数据库中的敏感信息。防御方法包括参数化查询、预编译语句和使用ORM(对象...
Web开发常见安全问题场景及解决方案
本规范主要关注WEB安全的规划、架构设计以及网站的安全治理,旨在为XX局的WEB开发与改造提供指导。安全措施涵盖了从服务器到通信信道的保护,但不涉及客户端的安全问题。 4.1 Web安全风险分类 Web安全风险主要分为...
总的来说,海康威视摄像头的Web开发涉及到多个层面的技术,包括浏览器插件、网络通信、流媒体处理以及前端Web开发等。开发者需要具备扎实的编程基础,熟悉相关协议和标准,才能充分利用这个开发包构建出高效、稳定的...
比较全面的一个关于Web开发安全技术的指导培训教程,分享出来给喜欢学习的小伙伴们
7. 安全性:Web开发中的安全性至关重要,包括防止SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。Python Web框架提供了一系列安全措施,如安全的cookie、CSRF令牌等,开发者需要了解并正确使用这些工具。 ...
"Python Web开发实录源代码"这个压缩包可能包含了以上提到的一些或所有知识点的实例代码。通过阅读和运行这些代码,你可以深入理解每个概念是如何在实际项目中应用的,从而提升自己的Web开发技能。在实践中,记得要...
本规范就是提供一套完善的、系统化的、实用的Web安全开发方法供Web研发人员使用,以期达到提高Web安全的目的。本规范主要包括三大内容:Web设计安全、Web编程安全、Web配置安全,配套CBB,多管齐下,实现Web应用的...
在当前的数字化时代,Web应用已经渗透到我们生活的方方面面,随之而来的Web安全问题也日益凸显。"Web安全实践"这一主题涵盖了多个重要的网络安全领域,包括但不限于预防SQL注入、跨站脚本攻击(XSS)、跨站请求伪造...
总的来说,Delphi Web开发结合Web Xone框架,为开发者提供了一种高效且灵活的途径来构建Web应用程序,它结合了Delphi的强大功能和Web开发的灵活性,使得开发者能够在Web环境中实现桌面级的应用体验。
本开发包主要面向熟悉Web开发的程序员,尤其是那些希望将海康威视设备集成到自定义监控平台或业务流程中的用户。 这个"海康威视WEB3开发包.zip"包含了一系列与海康威视Web3.0开发相关的资源和文档,这些资源可以...
标题中的"C# 关于WEB开发的一些源码"指的是利用C#编程语言进行Web应用程序开发的相关代码示例。C#是Microsoft公司推出的一种面向对象的、安全的、类型强的编程语言,尤其适合于构建Web应用。它在.NET框架的支持下,...
综上所述,《Web应用系统安全开发规范》为开发者提供了全面的安全指导,帮助他们在开发过程中有效识别并解决安全问题,从而构建更加安全可靠的Web应用系统。随着网络安全环境的变化,该规范也需要不断地更新和完善,...
为了确保Web应用的安全性,需要在整个开发周期中采取相应的安全措施。以下是一种典型的应用安全生命周期: 1. **需求阶段**:在此阶段需要进行安全需求分析,明确关键目标,并识别潜在的受攻击面。 2. **设计阶段**...
2、web面临的主要安全问题(2天) 客户端:移动APP漏洞、浏览器劫持、篡改 服务器:DDos攻击、CC攻击、黑客入侵、业务欺诈、恶意内容 3、常用渗透手段(3天) 信息搜集:域名、IP、服务器信息、CDN、子域名、...