Web安全相关知识汇总

web的关键四点:数据库 编程语言 web容器 优秀的web应用程序的设计者
web容器是当用户通过url访问web处理后的html文档
url是统一资源定位符亦叫网页地址是互联网的标准地址

所谓黑客应该是能找到漏洞 对漏洞做出种种处理方式
我们通常说的bug通常体现在代码出现的漏洞。
1项目上线后的服务器环境有变化。
2管理员密码泄露。
3配置性错误

http协议
它是干什么呢?究竟有什么作用?
HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。即就是这本书上所说的浏览器和服务器之间相互通信的所需的规定的规则。它允许html文档从web服务器传送到web浏览器。
HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
HTTP具体执行的模型 请求/应答 模型
浏览器向web服务器发出请求时,服务器处理并返回适当的应答。
以上就涉及到HTTP的请求和响应。

你会看到HTTP协议和HTTPS两种貌似相同的单词。两者区别也应该整理下:
HTTPS较更安全 即在ssl和HTTP协议构建的可进行加密传输 身份认证的网络协议。端口也不同。它是443端口,而HTTP是80的端口连接。

搜集目标资料~服务器的配置信息和有关于目标网站的相关联的信息。
关键词。
site
intext
intile
info
inurl
filetype

网络蜘蛛:蜘蛛在爬行中,会爬行整个网站,并将网站内所有链接提交到Google的数据库中。
漏洞扫描
我们应该借助于扫描器和自己的经验来发现漏洞。工善其事必先利其器,漏洞离不开优秀的工具也需要自己的积累丰富的经验。

sql注入漏洞:web层面最高危的漏洞之一。
有输入可控的地方就有可能有漏洞。
sql注入之所以可以攻击是由于用户可以控制输入
攻击者目的想绕过程序限制,使的用户输入数据能带入数据库执行,来获得更多的信息和权限。攻击者对数据库注入的利用方式有以下三大类:查询数据 读写文件 执行命令。
SQL Server数据库能准确定位错误消息,这样就给攻击者一个好的渠道来获取想要的信息。
对于数据库而言,sql注入基本原理相同。每个数据库都遵循一个sql语句的标准。但也并不完全相同,即语法和函数不同。针对不同的数据库采取的方法也不一定相同!
sql注入这么危险,那么该怎么阻止呢?
我们必须清楚:数据库只负责执行sql语句,再根据sql语句来返回相关数据。所以防御sql注入最好从代码入手。

防止非法文件上传可以利用客户端验证和服务器端检测。但是我们要注意任何客户端验证都是不安全。客户验证是为了防止用户输入错误,减小服务器开销。服务器端验证才是真正的防御攻击者。
上传漏洞形成的最终原因:1目录过滤不严 攻击者可能建立畸形目录。
2文件未重命名 攻击者可能会利用web容器解析漏洞。

xss跨站脚本漏洞~属于客户端攻击
xss是攻击者在网页中嵌入客户端脚本,通常是用javascript编写的恶意代码。若用户使用该网页时,恶意的代码将会在浏览器上被执行。它能够获取用户的cookie.黑掉页面,导航到恶意网站。

xss与javascript息息相关。
xss 分为三类 反射型 存储型和DOM型。
反射型xss是:当用户访问一个带有xss的url请求时,服务器端接收数据后处理,就会把带有xss代码的数据发送到浏览器,浏览器解析这段带有xss代码的数据时,便会造成xss漏洞。
攻击者利用这个漏洞就会很容易获取用户的cookie信息,再去利用这个用户的身份登入网站,从而使自己的私密信息暴露。
存储型xss又叫持久型xss,是最危险的一种跨站脚本。
允许用户储存数据的web应用程序都会可能出现这种漏洞,攻击者提交一段xss代码后被服务器接受并储存,再次访问某个页面时,这段代码便会被程序读出来并响应给浏览器,就会造成了xss跨站攻击,这就是储存型xss
它的特点是具有更好的隐蔽性。
DOM xss 不需要与服务器端发生交互,只发生在客户端处理数据阶段。

xss蠕虫
具有传染性,一般来说它是针对于浏览器的攻击,网站规模越大,攻击效果越大,所以xss蠕虫一般都是出现在拥有大量用户量的网站平台。
xss跨站漏洞的最终形成原因是对输入和输出没有严格的过滤。即只需将敏感字符过滤就可修复xss跨站漏洞。
防御xss时需要我们把握好输入和输出点并能针对性的进行过滤转义就可以杜绝xss跨站漏洞。

命令执行漏洞
它是指攻击者可以随意的执行系统命令,属于高危漏洞之一。
系统命令可以连接执行,在web应用程序中若没有过滤好输入,就会变得特别危险,在权限足够大的情况下,服务器可被攻击者直接攻陷。

代码执行漏洞和命令执行漏洞的区别是前者是靠执行脚本代码调用操作系统命令,后者是直接调用操作系统命令。
框架执行漏洞
框架技术可使开发变得更简单,省时,高效,但是一旦出现漏洞,其结果也是致命的。且框架的用户越多,安全隐患也就越大。
防范命令执行漏洞有:
尽量不要使用系统执行命令。
执行命令函数或方法前,变量要做好过滤,并对敏感字符进行转义。
使用动态函数前,确保使用的函数是指定的函数之一。
对于php语言,不能完全控制的函数最好不要用。

文件包含漏洞
一般可重复的函数会写在单个文件中,使用该函数时调用文件的过程便是个包含。
将被包含的文件设置为变量,用以动态调用,使代码更灵活。但是也很有可能使客户端调用恶意的文件,造成文件包含漏洞。
产生包含漏洞的根本原因是:被包含的页面可以被攻击者控制。

那个就看到这了 表示接下来会继续死啃
CSRF~苏醒的巨人
它是跨站请求伪造。与css相比,CSRF不流行,但却更难以防范。就更危险。
攻击:攻击者盗用你的身份,以你的名义进行某些非法操作。获取你的敏感信息,盗取你的财产。
功击原理:通常当我们打开或登录某个网站,浏览器和网站所存放的服务器产生一个会话,会话没结束时可用你的权限对网站进行某些操作。再深一点就是例如我们登录网上银行,浏览器跟可信站点建立一个经过认证的会话。所有通过这个经过认证的会话发送请求,都被视为可信的动作。CSRF便是建立在会话之上。所以在这之上的任何操作都是合法的。攻击者仅需要改变一下参数,用欺骗的方式使用户访问自己精心制作的URL。就可以进行一次"合法"攻击。而这个却是自己造成的,攻击者并没有攻破你的密码,或者入侵服务器。
CSRF通常是与XSS一起出现的。
CSRF是借用受害者的cookie骗取服务器的信任,但是并不能获取到cookie的内容。还有由于浏览器的同源策略的限制,它也无法从返回结果获得任何东西,CSRF只能给服务器发送请求。
预防CSRF攻击时,只需要增加小操作便可防御。
第一种:二次确定。
第二种:taken认证。它类似于验证码,但它不需要输入。
验证码的验证思路是:在服务器端生成验证字符并保存在session中,在客户端使用图片显示这段字符串,当用户输入验证码之后交给服务器处理,若验证码与session的字符串匹配,就代表验证码正确,可以发起请求,反之亦然。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值