① 如何設置 Web 伺服器的許可權
如何設置 Web 伺服器的許可權?如果Web伺服器的許可權沒有設置好,那麼網站就會出現漏洞並且很可能會出現被不懷好意的人黑掉的情況。我們不應該把這歸咎於 IIS 的不安全。如果對站點的每個目錄都配以正確的許可權,出現漏洞被人黑掉的機會還是很小的(Web 應用程序本身有問題和通過其它方式入侵黑掉伺服器的除外)。下面是我在配置過程中總結的一些經驗,希望對大家有所幫助。
IIS Web 伺服器的許可權設置有兩個地方,一個是 NTFS 文件系統本身的許可權設置,另一個是 IIS 下網站->站點->屬性->主目錄(或站點下目錄->屬性->目錄)面板上。這兩個地方是密切相關的。下面以實例的方式來講解如何設置許可權。
IIS 下網站->站點->屬性->主目錄(或站點下目錄->屬性->目錄)面板上有:
腳本資源訪問
讀取
寫入
瀏覽
記錄訪問
索引資源
6 個選項。這 6 個選項中,「記錄訪問」和「索引資源」跟安全性關系不大,一般都設置。但是如果前面四個許可權都沒有設置的話,這兩個許可權也沒有必要設置。在設置許可權時,記住這個規則即可,後面的例子中不再特別說明這兩個許可權的設置。
另外在這 6 個選項下面的執行許可權下拉列表中還有:
無
純腳本
純腳本和可執行程序
3 個選項。
而網站目錄如果在 NTFS 分區(推薦用這種)的話,還需要對 NTFS 分區上的這個目錄設置相應許可權,許多地方都介紹設置 everyone 的許可權,實際上這是不好的,其實只要設置好 Internet 來賓帳號(IUSR_xxxxxxx)或 IIS_WPG 組的帳號許可權就可以了。如果是設置 ASP、PHP 程序的目錄許可權,那麼設置 Internet 來賓帳號的許可權,而對於 ASP.NET 程序,則需要設置 IIS_WPG 組的帳號許可權。在後面提到 NTFS 許可權設置時會明確指出,沒有明確指出的都是指設置 IIS 屬性面板上的許可權。
例1 —— ASP、PHP、ASP.NET 程序所在目錄的許可權設置:
如果這些程序是要執行的,那麼需要設置「讀取」許可權,並且設置執行許可權為「純腳本」。不要設置「寫入」和「腳本資源訪問」,更不要設置執行許可權為「純腳本和可執行程序」。NTFS 許可權中不要給 IIS_WPG 用戶組和 Internet 來賓帳號設置寫和修改許可權。如果有一些特殊的配置文件(而且配置文件本身也是 ASP、PHP 程序),則需要給這些特定的文件配置 NTFS 許可權中的 Internet 來賓帳號(ASP.NET 程序是 IIS_WPG 組)的寫許可權,而不要配置 IIS 屬性面板中的「寫入」許可權。
IIS 面板中的「寫入」許可權實際上是對 HTTP PUT 指令的處理,對於普通網站,一般情況下這個許可權是不打開的。
IIS 面板中的「腳本資源訪問」不是指可以執行腳本的許可權,而是指可以訪問源代碼的許可權,如果同時又打開「寫入」許可權的話,那麼就非常危險了。
執行許可權中「純腳本和可執行程序」許可權可以執行任意程序,包括 exe 可執行程序,如果目錄同時有「寫入」許可權的話,那麼就很容易被人上傳並執行木馬程序了。
對於 ASP.NET 程序的目錄,許多人喜歡在文件系統中設置成 Web 共享,實際上這是沒有必要的。只需要在 IIS 中保證該目錄為一個應用程序即可。如果所在目錄在 IIS 中不是一個應用程序目錄,只需要在其屬性->目錄面板中應用程序設置部分點創建就可以了。Web 共享會給其更多許可權,可能會造成不安全因素。
總結: 也就是說一般不要打開-主目錄-(寫入),(腳本資源訪問) 這兩項以及不要選上(純腳本和可執行程序),選(純腳本)就可以了.需要asp.net的應用程序的如果應用程序目錄不止應用程序一個程序的可以在應用程序文件夾上(屬性)-目錄-點創建就可以了.不要在文件夾上選web共享.
例2 —— 上傳目錄的許可權設置:
用戶的網站上可能會設置一個或幾個目錄允許上傳文件,上傳的方式一般是通過 ASP、PHP、ASP.NET 等程序來完成。這時需要注意,一定要將上傳目錄的執行許可權設為「無」,這樣即使上傳了 ASP、PHP 等腳本程序或者 exe 程序,也不會在用戶瀏覽器里就觸發執行。
同樣,如果不需要用戶用 PUT 指令上傳,那麼不要打開該上傳目錄的「寫入」許可權。而應該設置 NTFS 許可權中的 Internet 來賓帳號(ASP.NET 程序的上傳目錄是 IIS_WPG 組)的寫許可權。
如果下載時,是通過程序讀取文件內容然後再轉發給用戶的話,那麼連「讀取」許可權也不要設置。這樣可以保證用戶上傳的文件只能被程序中已授權的用戶所下載。而不是知道文件存放目錄的用戶所下載。「瀏覽」許可權也不要打開,除非你就是希望用戶可以瀏覽你的上傳目錄,並可以選擇自己想要下載的東西。
總結: 一般的一些asp.php等程序都有一個上傳目錄.比如論壇.他們繼承了上面的屬性可以運行腳本的.我們應該將這些目錄從新設置一下屬性.將(純腳本)改成(無).
例3 —— Access 資料庫所在目錄的許可權設置:
許多 IIS 用戶常常採用將 Access 資料庫改名(改為 asp 或者 aspx 後綴等)或者放在發布目錄之外的方法來避免瀏覽者下載它們的 Access 資料庫。而實際上,這是不必要的。其實只需要將 Access 所在目錄(或者該文件)的「讀取」、「寫入」許可權都去掉就可以防止被人下載或篡改了。你不必擔心這樣你的程序會無法讀取和寫入你的 Access 資料庫。你的程序需要的是 NTFS 上 Internet 來賓帳號或 IIS_WPG 組帳號的許可權,你只要將這些用戶的許可權設置為可讀可寫就完全可以保證你的程序能夠正確運行了。
總結: Internet 來賓帳號或 IIS_WPG 組帳號的許可權可讀可寫.那麼Access所在目錄(或者該文件)的「讀取」、「寫入」許可權都去掉就可以防止被人下載或篡改了
例4 —— 其它目錄的許可權設置:
你的網站下可能還有純圖片目錄、純 html 模版目錄、純客戶端 js 文件目錄或者樣式表目錄等,這些目錄只需要設置「讀取」許可權即可,執行許可權設成「無」即可。其它許可權一概不需要設置。 上面的幾個例子已經包含了大部分情況下的許可權設置,只要掌握了設置的基本原理,也就很容易地完成能其它情況下的許可權設置。
② JavaWeb項目里的 關於許可權控制,是怎樣實現的呢
一般用了3張表
1.用戶表(存儲所有用戶,有一個欄位表示用戶的所屬組如,管理員是0)
2.路徑表(存儲你的所有頁面路徑)
3.許可權表(存儲用戶和路徑的關系,0對應一些路徑)
查詢的時候用0去許可權表查出所有對應的路徑
③ web前後端分離怎麼做許可權控制
許可權的設計中比較常見的就是RBAC基於角色的訪問控制,基本思想是,對系統操作的各種許可權不是直接授予具體的用戶,而是在用戶集合與許可權集合之間建立一個角色集合。每一種角色對應一組相應的許可權。
④ 跪求java web項目關於許可權的設計及源碼 。比如有用戶許可權。管理員許可權,不同的用戶有不同的許可權菜單,等
用戶表裡加一個role的角色,對應role的一張表,當用戶登錄時,判斷該用戶的角色,這樣根據該用戶所擁有的角色來處理該 用戶擁有系統哪部分的使用權。虎哥,在做web項目?
⑤ linux伺服器下web項目的許可權問題
首先確認你web伺服器是以什麼用戶運行的
一般apache是http用戶
所以:
chown -R http:http /home/www/
將web目錄的所有者改下就可以了,當然也有其他方法就不說了。
⑥ 現在我們要做一個web開發,後台的許可權問題應該怎麼做呢
web開發現在比較流行的許可權系統是RBAC:基於角色的訪問控制(Role-Based Access Control);
一個系統的許可權系統,我覺得是一個應該整體考慮、設計的重要部分,不是以解決一個特定問題而切入進行的;
不過單說你的問題也可以,可以做成這樣:
1.每一個需要進行許可權檢查的場景,被描述為:
什麼模塊(或功能,視具體系統為定),什麼操作(功能點),如列印機模塊的列印操作
對你的場景,可以描述為
(1)什麼公司的列印機模塊的列印操作
(2)或乾脆什麼公司的列印操作,因為你問題描述的是對公司數據的操作
2.設定角色
指定一個角色,可以對某公司的數據進行以下操作:
增刪改查,對另一個公司可以查,具體是將一個角色與模塊-操作建立關聯關系
3.在角色內增加身份
比如把某人、某個組織等與角色進行綁定
最終實現的關聯關系表達:
某人以什麼身份(如個人、隸屬於某組織),在指定場景下(某公司、某模塊),可以做的操作有:增刪改查
這個太復雜了
簡單點嘛:
雖然對本公司和外公司的數據上全都標記上隸屬的公司不太現實,但是展示不同公司的頁面上總可以區分吧:
顯示A公司的數據時,數據的查詢總得帶個參數A吧,那麼就根據這個A是否與當前使用者隸屬公司相同進行判斷,不同時隱藏掉一些按鈕唄
⑦ java web項目,文檔許可權是如何設計的
大哥這個不叫文檔許可權
這叫操作許可權
一般我們是對角色進行授權
設計簡單,首先必須要有一個表存儲要進行許可權設置的頁面和頁面元素
其次是有一張關聯表,表明什麼角色擁有什麼頁面的什麼元素的什麼許可權
第三就是在頁面載入的時候進行提取許可權和設置許可權的操作
⑧ web項目里許可權是一張表還是兩張表
這兩個應該是多對多的關系,最好還是一張用戶表,一張許可權表,一張用戶許可權關系表
⑨ javaweb 項目的系統許可權管理,怎麼設計
按你說的設計可以啊,設置角色,給用戶分配角色,角色控制菜單顯示,最好做一個後台可以編輯角色,那樣方便很多
⑩ JavaWeb項目有哪些許可權配置的方案
1、說白了,Java後台開發項目,絕大部分都是用來作為一個項目的後台管理系統2、用來配置前端頁面所需要的比如售票的時候票種啊、以及報表統計、許可權等操作