• <source id="ui8ay"></source>
    <source id="ui8ay"><button id="ui8ay"></button></source>
  • <source id="ui8ay"><button id="ui8ay"></button></source><source id="ui8ay"><button id="ui8ay"></button></source>
    • 歡迎使用超級蜘蛛池,超百萬蜘蛛與您共享,蜘蛛池引蜘蛛快速提高網站收錄,收藏快捷鍵 CTRL + D

    网站安全之Web常见安全漏洞须知


    網站安全性是網站運營的基礎,現在很多企業在建站的時候會使用到快源程序,開源程序的好處是方便快捷、簡單易上手,弊端也很明顯,那就是網站的安全性很難得到保障,如何在建站的時候保證網站的安全性呢?

    一、SQL注入

    1.jpg

    1、什么是SQL注入?

    SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。

    2、如何注入?

    例子: http://test.com/info?id=1

    此URL返回數據庫某表的1條數據。程序中可能這么寫的,ID為傳入變量:

    select * from user where id=‘”+id+“ ’;

    如上,那么查詢語句將是

    select * from user where id = ‘1’

    如果 id= 1‘ or ’1‘=’1,那么查詢語句將是

    select * from user where id = ‘1’ or ‘1’=‘1’

    3、SQL注入原因

    ①對提交的數據未過濾

    ②拼裝SQL語句

    ③不當的類型處理

    4、SQL注入防御

    (1)字符串長度驗證

    僅接受指定長度范圍內的變量值。sql注入腳本必然會大大增加輸入變量的長度,通過長度限制,比如用戶名長度為 8 到 20 個字符之間,超過就判定為無效值。

    (2)對單引號和雙"-"、下劃線、百分號等sql注釋符號進行轉義

    (3)不使用動態拼裝SQL,使用參數化的SQL進行數據查詢存取

    代碼示例:

    String sql = "select id, no from user where id=?";

    PreparedStatement ps

    = conn.prepareStatement(sql);

    ps.setInt(1, id);

    ps.executeQuery();

    (4)框架防御: mybatis

    ① # 符號作用為 將傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號。

    如:where user_id= #{id}

    如果傳入的值是111,那么解析成sql時的值為 where id ="111"

    如果傳入的值是 1’=or ’1’=‘1’ ,則解析成的sql為 whereid “1’=or ’1’=‘1’ “

    ②$ 符號則是將傳入的數據直接生成在sql中。

    如:where user_id= ‘${id}’

    如果傳入的值是111,那么解析成sql時的值為 where id =‘111’

    如果傳入的值是 1’=or ’1’=‘1’,則解析成的sql為 where _id =‘1’or ’1’=1’

    結論:# 符號能夠防止SQL注入, $符號無法防止SQL注入,$ 符號一般用于傳入數據庫對象,例如傳入表名

    二、XSS

    2.jpg

    1、什么是XSS?

    往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的

    2、XSS分類

    (1)持久性的XSS(存儲在服務器端,攻擊行為將伴隨著攻擊數據一直存在)

    3.jpg

    (2)非持久性的XSS(一次性的,僅對當次的頁面訪問產生影響)

    4.jpg

    例子:將參數傳遞至頁面輸出

    參數寫法: index?value=<script>alert(document.cookie)</script>

    頁面和JS寫法: <div id=“xss”></div> | $(‘#xss’).html(value);

    3、XSS危害

    執行任意JS代碼。最常見的做法是獲取COOKIE認證信息;其他的就是跳轉至惡意網址等,或者配合CSRF漏洞,進行創建form表單,進行提交,強制使當前用戶操作,比如發帖,刪帖,甚至轉賬等。

    4、 XSS防護

    (1)過濾用戶輸入的內容,常見的是過濾 ‘、”、;、< 、>

    (2)在用戶提交數據時,對數據進行編碼處理。

    (3)在輸出頁面時,對數據進行編碼處理。

    三、CSRF

    1、什么是CSRF?

    偽造請求,冒充用戶在站內的正常操作

    2、CSRF攻擊原理

    5.jpg

    3、CSRF危害

    攻擊者盜用了用戶的身份,可以利用此身份進行發送郵件、發消息、購買商品、銀行轉賬等等用戶可執行的操作。

    4、CSRF如何防護

    (1)驗證 HTTP Referer 字段

    此方法為基礎防御,目前Referer是可被改寫和偽造的,并非絕對安全。

    (2)HTTP添加自定義參數驗證

    服務器生成token一份存放在session中,一份放在前端隱藏域中隨請求頭部提交。B不訪問A網站前端拿不到token,請求無法通過驗證,達到防御目的。

    四、URL跳轉漏洞

    1、什么是URL跳轉漏洞?

    程序中常會重定向頁面,在登錄系統中長會根據URL中的參數進行重定向,便于用戶登錄之后,調轉到之前的頁面。

    2、URL示例

    比如: http://www.aa.com/account/login?from=http://download.aa.com

    對于跳轉頁是否是當前站點的頁面,或者是否是允許的頁面地址沒有做判斷,當惡意攻擊者將地址改為:

    http://www/aa.com/account/login?from=http://www.bb.com/

    那么用戶登錄后會跳轉到www.bb.com,如果是惡意網址,那么用戶就成為受害者。

    3、配合session在URL中傳遞的危害

    跳轉到的頁面中很容易從HTTP請求頭中獲取到url中session的值,對于session中驗證信息不綁定用戶客戶端信息的情況,攻擊者可直接使用,成為之前用戶的身份。

    4、URL跳轉漏洞防護

    (1)可以確定的URL:配置對應索引文件,通過索引找到對應具體url再進行跳轉

    (2)無法確定的URL:增加規則校驗,先通過驗證后在進行跳轉

    本文鏈接:http://www.uplinku.com/article/311.html

    評論專區

    您的大名*
    電子郵件*
    個人網址 
    評論內容 
    驗證碼     

    超級蜘蛛工具

    • 超級蜘蛛池引蜘蛛
    • 超級蜘蛛池_關鍵詞快速排名系統_全網搜索引擎SEO優化平臺
    • 百度收錄查詢-百度收錄批量查詢-百度站長工具-超級蜘蛛池
    • 域名IP地址批量查詢_網站IP地址批量查詢_超級蜘蛛工具_超級蜘蛛池
    • 超級外鏈發布工具_免費批量發布SEO外鏈_發外鏈工具_超級蜘蛛池
    • 網頁蜘蛛模擬抓取測試工具_超級蜘蛛工具_超級蜘蛛池
    黑人巨大两根一起挤进的视频
  • <source id="ui8ay"></source>
    <source id="ui8ay"><button id="ui8ay"></button></source>
  • <source id="ui8ay"><button id="ui8ay"></button></source><source id="ui8ay"><button id="ui8ay"></button></source>