浅谈SQL注入,XSS攻击

作为计算机小白,一直都认为黑客很牛逼所以简单的了解一下这反面的知识——信息安全
黑客是个英译词,译作Hacker。黑客攻击或者黑计算机的方式多种多样,主要分为两种:
(1)非破坏性的攻击:一般是为了扰乱系统的运行,并不盗窃系统资料,仅仅只是使服务器暂时失去对外提供服务的能力,通常采用拒绝服务攻击或信息炸弹
(2)破坏性攻击:是以侵入他人电脑系统、盗窃系统保密信息、破坏目标系统的数据为目的
常见的攻击有DDOS,CSRF,Dos等,通常通过的途径有病毒式,洪水式,系统漏洞等。
下面简单的介绍几种

SQL注入

常见的注入式攻击,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句添加链接描述
造成可以进行SQL注入的本质原因就是未将代码与数据进行严格的隔离,导致用户在读取数据的时候,错误的把数据作为代码的一部分执行。
下面举个简单的例子:

var testCondition;
testCondition = Request.from("testCondition")
var sql ="select * from TableA where id='"+ testCondition +"'";

在上面的例子当中,如果用户输入的ID只是一个数字当然没有任何问题,但是如果用“;‘隔开后,在testCondition里面插入其他SQL语句,则会出现意想不到的结果。例如输入drop,delete等。例如你不小心输入"#–!#@"这样的字符然后保存使得数据库跟新就会使where后面的信息被注释掉了,执行语句就变成了

updata table set memo=""# --! #(@" where use_id=xxxxxxx;

使得全数据库的memo字段的数据都被跟新了,而不是你一个人的数据。
下面有几个兄弟写的很详细,大家可以去看看
(1)最详细的SQL注入教程–易利伟
(2)web完全篇之SQL
(3)SQL注入攻击
(4)用sql注入攻破网站
大家可以找个一个肉鸡网站去试试或者自己写一个肉鸡网站也是个不错的选择
SQL注入的危害极大,在进行程序设计时我们可以从下面几个方面进行预防

(1)过滤用户输入参数中的特殊字符,从而降低被SQL注入的风险
(2)禁止使用字符串拼接的SQL语句,严格使用参数绑定传入的SQL参数
(3)合理使用数据库访问框架提供的防注入机制

xss攻击

    XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets,CSS)
 的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,
 它允许恶意web用户将代码植入到提供给其它用户使用的页面中。即黑客通过技术手段向
 正常用户请求的HTML页面中插入恶意脚本,从而可以执行任意脚本
xss的分类

(1)反射型XSS

   恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来
实施攻击的。

(2)存储型XSS

     恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较
常见场景是在博客,论坛等社交网站上,但OA系统,和CRM系统上也能看到它身影,比如某
CRM系统的客户投诉功能上存在XSS存储型漏洞,黑客提交了恶意攻击代码,当系统管理员
查看投诉信息时恶意代码执行,窃取了客户的资料,然而管理员毫不知情,这就是典型的
XSS存储型攻击。

(3) DOM型XSS

其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

比如在2011年微博左右XSS蠕虫攻击事件,攻击者就利用微博发布功能中未对action-data漏洞做有效的过滤,在发布微博信息的时候戴上了包含攻击脚本的URL,用户访问该微博是便疯狂加载恶意脚本,该脚本会让用户以自己的账号自动转发同一条微博,通过这样的病毒式扩散,大量用户受到攻击。
下面举个简单的实例可能会导致反射型XSS的文件:

<div>
<h3>反射型XSS实例</h3>
<br>用户:<%=request.getParamer("useName")%>
<br>系统错误信息:<%=request.getParamer("errorMessage")%>
<div>

上面的代码从HTTP请求中取得了userName和errorMessage两个参数,并直接输出到HTML中用于展示,当构造这样一种URL时就出现了反射型XSS,用户便会执行脚本文件

http://xss.demo/self-xss.jsp?userName=666<script>alert("666")</script>
&errorMessage=XSS实例<script scr=http://hacker.demo/xss-script.js>
XSS攻击的预防主要是通过对用户的输入数据进行过滤和转义,如使用jsonp框架对用户输入的字符串作XSS过滤,使用Sping框架中的HtmlUtils对用户输入的字符串做html转义等

下面是几篇写的较为详细的XSS攻击博客
(1)web安全之XSS攻击
(2)XSS跨站脚本攻击
(3)XSS防御方法
(4)浅谈XSS攻击原理
时间匆匆而逝,下次我再来分享一点点关于第三种黑客攻击:CSRF的知识

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL注入XSS(跨站脚本攻击)和CSRF(跨站请求伪造)是三种常见的网络安全威胁,它们针对的应用场景和攻击机制有所不同。 1. SQL注入: - **定义**:攻击者通过在输入字段中插入恶意SQL代码,欺骗应用程序执行非授权的数据库查询,可能获取敏感信息或修改数据。 - **目标**:主要影响Web应用程序后端数据库,试图访问或操控存储在服务器的数据。 - **示例**:尝试在登录表单中输入"\' OR '1'='1",可能导致所有用户登录。 2. XSS攻击: - **定义**:攻击者在网站上植入恶意脚本,当用户访问含有这些脚本的页面时,脚本会在用户的浏览器上执行,可能窃取用户信息或控制用户的会话。 - **目标**:影响用户浏览器,操纵前端显示内容,或利用用户的行为进行攻击。 - **示例**:在网页中添加未过滤的用户评论,评论中包含HTML代码,如`<img src="malicious.com">`,可能导致恶意图片加载或跟踪。 3. CSRF攻击: - **定义**:攻击者通过伪装成合法用户,利用受害者已经登录的身份,发送请求到受信任的网站执行未经授权的操作,如转账、修改设置等。 - **目标**:利用用户的已认证状态,进行无需用户干预的恶意操作。 - **示例**:网站提供一个“一键购买”功能,如果一个恶意网站包含一个隐藏的表单,填充了受害者账户信息并指向该功能,用户无意点击后可能会完成购买。 相关问题: 1. 如何防止SQL注入攻击? 2. XSS攻击通常如何防御? 3. CSRF攻击如何通过令牌机制来防范?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值