怎么防止sql注入攻击_网络安全的威胁

2022-11-17 16:06:15 浏览数 (3)

大家好,又见面了,我是你们的朋友全栈君。

文章目录
  • SQL注入
  • XSS攻击
  • CSRF攻击
  • 网页木马
  • 文件包含漏洞攻击
  • 目录遍历攻击
  • CC攻击
  • DOS攻击
  • DOS攻击和CC攻击的区别

SQL注入

SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

个人理解: 用户通过浏览器访问网站,基本上很多的网站的数据都是保留在数据库中的,客户通过输入特定的数据特征利用网站开发者设计好的SQL查询语句进行对数据库中的数据进行查询,从而返回用户需要的数据,通过浏览器显示呈现到用户,达成整个的交付过程。

而SQL攻击就是在用户输入数据特征的时候,注入一些特殊的指令来破坏原本的SQL语句查询功能,从而使得一些功能失效或者查询到本来无法查询到的重要数据。 相关优质博客资料 (1)SQL注入是什么?

XSS攻击

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 (1)XSS攻击百度百科资料

CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。

与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。 CSRF百度百科资料 优质博客链接: 什么是 CSRF 攻击,如何避免?

网页木马

网页木马百度百科

网页木马的防护

网页木马的防范只靠杀毒软件和防火墙是远远不够的,因为一旦黑客使用了反弹端口的个人版木马(个人反汇编的一些杀毒软件无法识别的木马),那么杀毒软件和防火墙就无可奈何,所以,网页木马的防范要从它的原理入手,从根子上进行防范。

安装补丁 改名或卸载(反注册)最不安全的ActiveXObject(IE插件) 在系统中有些ActiveXObject会运行EXE程序,比如本文中“自动运行程序”代码中的Shell.application控件,这些控件一旦在网页中获得了执行权限,那么它就会变为木马运行的“温床”,所以把这些控件改名或卸载能彻底防范利用这些控件的网页木马。但是ActiveXObject是为了应用而出现的,而不是为了攻击而出现的,所有的控件都有它的用处,所以在改名或卸载一个控件之前,你必须确认这个控件是你不需要的,或者即使卸载了也不关大体的。

卸载(反注册)ActiveXObject过程如下:

第一步:在“开始”菜单上单击“运行”,输入“CMD”命令打开命令提示符窗口。

第二步:在命令提示符下输入“regsvr32.exe shell32.dll /u/s”,然后回车就能将Shell.application控件卸载。 如果日后我们希望继续使用这个控件的话,可以在命令提示符窗口中输入“regsvr32.exe shell32.dll /i/s”命令将它们重新安装(注册)。在上述命令中:“regsvr32.exe”是注册或反注册OLE对象或控件的命令,[/u]是反注册参数,[/s]是寂静模式参数,[/I]为安装参数。

改名

需要说明的是,改名一个控件时,控件的名称和CLSID(Class ID)都要改,并且要改彻底。下面仍以Shell.application为例来介绍方法。

第一步:打开注册表编辑器,查找“Shell.application”。用这个方法能找到两个注册表项:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。

第二步:把{13709620-C279-11CE-A49E-444553540000}改为{13709620-C279-11CE-A49E-444553540001},注意,不要和系统中的其它CLSID重复。

第三步:把“Shell.application”改名为“Shell.application_xxx”。以后用到这个控件的时候你使用这个名称就可以正常调用此控件了。

安全级别

有些网马只要调高IE的安全级别,或者禁用脚本,该网页木马就不起作用了。从木马的攻击原理我们可以看出,网页木马是利用IE脚本和ActiveX控件上的一些漏洞下载和运行木马的,只要我们禁用了脚本和ActiveX控件,就可以防止木马的下载和运行。

代码语言:javascript复制
小提示:禁用脚本和ActiveX控件会使一些网页的功能和效果失去作用,所以是否禁用,你要根据自己对安全的需要来定。

第一步:在IE浏览器的菜单栏上选择“工具→Internet选项”打开“Internet选项”对话框。

第二步:在“安全”选项卡上,在Internet和本地Internet区域,分别把滑块移动到最高,或者点击“自定义级别”,在打开的对话框上禁用脚本,禁用ActiveX控件。

文件包含漏洞攻击

相关博客介绍

目录遍历攻击

相关博客介绍

CC攻击

CSDN上相关的博客和百度百科基本内容概括一致 CC攻击百度百科资料

DOS攻击

DOS攻击相关博客:https://blog.csdn.net/csdn10086110/article/details/90633296 DOS攻击和DDOS攻击

DOS攻击和CC攻击的区别

很多朋友都知道木桶理论,一桶水的最大容量不是由它最高的地方决定的,而是由它最低的地方决定,服务器也是一样,服务器的安全性也是由它最脆弱的地方决定的,最脆弱的地方有多危险服务器就有多危险。DDOS也是一样,只要你的服务器存在一个很耗资源的地方,限制又不够,就马上成为别人DDOS的对象。比如SYN-FLOOD,它就是利用服务器的半连接状态比完全连接状态更耗资源,而SYN发动方只需要不停的发包,根本不需要多少资源。

一个好的DDOS攻击必须是通过自己极少资源的消耗带来对方较大的资源消耗,否则比如ICMP-FLOOD和UDP-FLOOD都必须和别人一样大的带宽,对方服务器消耗多少资源自己也得赔上多少资源,效率极其低下,又很容易被人发现,现在基本没有什么人用了。 攻击原理

CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。   一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。   使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。 加深理解:

我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。 有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。   我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大。  >当然,CC也可以利用这种方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213541.html原文链接:https://javaforall.cn

1 人点赞