• <nav id="yisyq"></nav>
  • <menu id="yisyq"></menu>
    Skip to content
    您好,歡迎來到友外鏈![ 請登錄 ] 新用戶?[ 免費注冊 ]

    友外鏈 打造最便捷的外鏈交易平臺

    您的位置: 友情鏈接平臺 > seo教程 > 【網站安全】網站被掛木馬與777權限的奧妙

    【網站安全】網站被掛木馬與777權限的奧妙

    時間:2016-10-19 19:46:03 來源:友外鏈    編輯:小雯


    某天VIP大講堂微信群里的一位同學說網站被人掛馬了,查了半天也查不到原因。藝龍SEO負責人劉明問了一句“是不是技術把linux系統里網站的核心目錄設置777文件權限了”,同學查后發現果然如此。那么,777是什么?老虎機嗎?愛偷懶的程序員都該會心一笑,省事大法啊。這簡單的數字背后代表了一套偉大的文件權限控制思想。院長趕緊請劉明長敘一篇,讓我們隨著劉明的解釋慢慢理解。

    一、當用戶訪問一個網頁
      這個時候,你的服務器內部發生了什么,請參考下圖。其中任何一個環節有漏洞,都會出問題。注意,本圖片只代表個人理解,并非真實流程。


    二、文件的權限只有三種
      查詢一下linux的標準文檔,就知道。文件分為,讀、寫、執行三種權限。
      r Read 可以打開并讀取內容。
      w Write 可以修改內容,增加內容,甚至刪除內容。
      x Execute 可以當做可執行程序,或者shell腳本執行。
      特別注意,對于目錄來說,x表示可以瀏覽他里頭都有什么文件。

    三、文件權限針對的是三類用戶。
      owner 文件所有者,或者說是創建了這個文件的人。
      group 文件所在的組,一個組可以包含很多個owner,但不一定包含當前文件這個owner。
      other 其他人,也就是除了當前這個owner,除了當前這個group外的所有人。

    四、實際是什么樣子的。
      linux中所有文件都需要記錄這3種權限和3種人群。3x3=9,再加上一個標記表示“這是不是一個目錄”,一共10個標記。如圖所示,

    這12行表示12個文件,都是一個叫sin的人創建都,而且sin的分組是staff。

    五、詳細解釋一下。
      我們從前到后逐一說一遍。寫著子母(drwx)的,表示有這個權限。寫著橫線(-)的,表示沒有這個權限。
      drwxrwxrwx
      1: 這是不是一個文件夾。d表示是,-表示否。(如果寫的是l,可以理解為他是快捷方式)
      2:owner是否可以讀取這個文件的內容。r表示是,-表示否。
      3:owner是否可以改寫這個文件的內容。w表示是,-表示否。
      4: owner是否可以執行這個文件。x表示是,-表示否
      5:group是否可以讀取這個文件的內容。r表示是,-表示否。
      6: group是否可以改寫這個文件的內容。w表示是,-表示否。
      7: group是否可以執行這個文件。x表示是,-表示否。
      8: other是否可以讀取這個文件的內容。r表示是,-表示否。
      9:other是否可以改寫這個文件的內容。w表示是,-表示否。
      10:other是否可以執行這個文件。x表示是,-表示否。

    六、怎么用數字方便的表示文件權限。
      因為10個位置中,第1個不是權限,我們就只看后邊9個位置。
      如何把這個權限轉化成數字呢?rwxrw-r--
      owner group other
      符號 r w x r w - r - -
      二進制 1 1 1 1 1 0 1 0 0
      相加之和 7 6 4
      111 = 2^2 + 2^1 + 2^0 = 7
      110 = 2^2 + 2^1 =6
      100 = 2^2 = 4
      所以rwxrw-r--就變成了:764

    七、常用的權限數字
      常用更改文件權限的命令,xxx代表文件名
      600 只有owner有讀和寫的權限
      644 owner有讀和寫的權限,group只有讀的權限
      700 只有ower有讀和寫以及執行的權限
      666 owner,group,other都有讀和寫的權限
      777 owner,group,other都有讀和寫以及執行的權限

    八、終于講到正題了
      講了這么說,你應該明白777的意思就是,任何人可以干任何事。那等于什么權限都沒設啊!linux再安全也架不住自己人刻意制造漏洞吧。這完全等同于把鋼鐵俠屁股上的材料換成了窗戶紙。

    linux的安全原則是最小權限原則,能不給的權限就不要給。而很多懶惰或者新手的程序員往往為了省事使用最大權限。

    有的人問,網站需要上傳圖片,需要w很正常,否則圖片放哪呢。那我想問,你家的房子,是不是可以隨便挪動?冰箱能挪動,承重墻能挪的動嗎?請注意,客廳,臥室,廁所,廚房的空間都是rw的,但是承重墻只能是r的,不能隨便w。

    同理,網站核心代碼是不可寫的,只能可讀。

    學會了權限的基本支持,怎么運用呢?(只能說大概意思,具體應該怎么部署,還是找專業都運維同學問吧,我好久沒碰web了。)

    假設我把核心代碼放在/var/www/,我把圖片放在/var/pic/。前者目錄rw,里頭所有文件r。后者本身w,里頭所有文件r

    webserver只能解析/var/www/里的文件,不能執行/var/pic/里的。這樣不至于讓人家把木馬程序放到/var/pic/里執行。

    由于每個網站使用的語言都不一樣,無法做一個統一說明,只能舉幾個例子。假如你的網站使用php語言,植入的木馬基本也都是php語言寫的命令。

    可以分別試試這兩個命令,因為php木馬常用eval和create_function來做壞事(說/var/www/路徑不存在的同學,面壁思過10分鐘)。

    grep "eval(" /var/www/* -r

    grep "create_function(" /var/www/* -r 

    請注意,并不是沒有用777權限,就萬無一失了,web的漏洞多如牛毛,無孔不入,本文章只是拋磚引玉。



    上一篇:【官方說法】全面解讀BaiduSpider與站點死鏈下一篇:SEO優化這二種錯誤請不要犯

    推薦服務商

    最新加入

    ?
    回到頂部
    小草影视免费观看