zoukankan      html  css  js  c++  java
  • 前端面试---常见的web安全及防护原理

    一、常见的web安全及防护原理

    1.sql注入原理

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

    防护,总的来说有以下几点:

    1、永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号双“--”进行转换等。

    2、永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

    3、永远不要使用管理员权限进行数据库连接,为每个应用使用单独的权限有限的数据库连接。

    4、不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息。

    2. XSS原理及防范

        XSS(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。比如:攻击者在qq中发送一个看似安全的链接,骗取用户点击之后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为信任的站点。

     3.XSS防范方法

    首先代码里对用户输入的地方和变量都需要仔细检查长度和对“<”,">" ,";"," ' "等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag弄出来。至少可以堵住超过一半的XSS攻击。

    首先,避免直接在cookie中泄漏用户隐私,例如email、密码等等。

    其次,通过使用cookie和系统ip绑定来降低cookie泄漏后的危险。这样攻击者得到的cookie没有实际价值,不可能拿来重放。

    如果网站不需要在浏览器端对cookie进行操作,可以在set-cookie末尾加上HttpOnly来防止JavaScript代码直接获取cookie 。

    尽量采用post而非get提交表单

    4.XSS与CSRF有什么区别吗?

    XSS是获取信息,不需要提前知道其他用户页面的代码和数据包。CSRF是代替用户完成指定的动作,需要知道其他用户页面的代码和数据包。

    要完成一次CSRF攻击,受害者必须依次完成两个步骤:

    登录受信任网站A,并在本地生成cookie。

    在不登出A的情况下,访问危险网站B。


    5.CSRF的防范

    服务器端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数。

  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    提高SQL执行效率的16种方法
    Spring Ioc DI 原理
    java内存泄漏
    转:js闭包
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Best Time to Buy and Sell Stock with Cooldown
    LeetCode Length of Longest Fibonacci Subsequence
    LeetCode Divisor Game
    LeetCode Sum of Even Numbers After Queries
  • 原文地址:https://www.cnblogs.com/ai-xin-hong-yu/p/8654754.html
Copyright © 2011-2022 走看看