CGI編程的安全性 -- 文件名

文件名是提交給CGI腳本的一種數據,但假如不小心的話,卻能導致許多麻煩.想要打開一個用戶提供的名字的文件時,都必須嚴格檢查這個文件名以免招至系統重要文件泄露.用戶輸入一個文件名,有可能就試圖打開輸入危險字符串!例如,用戶輸入的文件名中包含路徑字符,如目錄斜杠和雙點!盡管你期望的是輸入公用的文件名:例如report.txt.但結果卻可能是/report.txt或../../report.txt,系統中所有文件就有可能泄露出去,後果是可想而知的.

假如用戶輸入一個已有文件名或對系統的運作有很重要的文件件名!比如輸入的文件名是/etc/passwd,那用戶就可以對該文件任意修改.可能第二天登錄網站時進行更新的時候,你就發現密碼被別人修改了,那時你只有寫信給系統治理員請求幫助了.所以在編寫CGI腳本時要保證所有字符都是合法的.

下面這段代碼能把不合法的字符過濾掉.

if(($file_name=~/[^a-zA-Z_\.]/)||($file_name=~/^\./))

{#文件包含有不合法字符. }

最好將上面代碼做爲一個子程序,這樣就可以重複地調用它這樣也方便于修改.對于不答應輸入Html下面有兩個方案.

1、有種簡單的方法就是不答應小于號(<)和大于(>)因爲所有HTML語法必須包含在這兩個字符間,假如碰到它們就返回一個錯誤是一種防止HTML被提交的簡單的方法.下面一行Perl代碼快速地清除了這兩個字符:

$user_input=~s/<>//g;

2、複雜一點的方法就是將這兩個字符轉換成它們的HTML換碼(非凡的代碼),用于表示每個字符而不使用該字符本身.下面的代碼通過全部用&lt;替換了小于符號,用&gt;替換了大于符號,從而完成了轉換:

$user_input=~s/</&lt;/g;

$user_input=~s/>/&gt;/g;

CGI教學:CGI安全問題
  在計算機領域——尤其在Internet上——盡管大部分Web服務器所編的程序都盡可能保護自己的內容不受侵害,但只要CGI腳本中有一點安全方面的失誤--口令文件、私有數據、以及任何東西,就能使入侵者能訪問計算機。遵...查看完整版>>CGI教學:CGI安全問題
 
CGI教程(9)編寫安全的CGI腳本
  編寫安全的CGI腳本  不管在什麽時候,一個程序與網絡客戶端聯系的時候,就有可能客戶端會攻擊這個程序以獲得未授權的訪問。即使是無惡意地看看你的腳本也會你的系統的完整型構成危險。出于這種想法,本節教程將...查看完整版>>CGI教程(9)編寫安全的CGI腳本
 
CGI的安全
目錄: 1. 基本的安全問題 1-1. 操作系統 1-2. 增強服務器的安全 1-2-1.你應該在什麽地方放置你的CGI程序? 1-2-2.SSI(Server-Side Includes) 1-2-3.增強你的Unix服務器的安全 1-2-4.例子:安全的配置NCSA服務器 2.寫...查看完整版>>CGI的安全
 
CGI安全漏洞資料速查
CGI安全漏洞資料速查 CGI安全漏洞資料速查 ############################################################################# 本文取自一位朋友.這本來不算是什麽珍貴的東西,如果你平時注意收集的話,相...查看完整版>>CGI安全漏洞資料速查
 
CGI安全漏洞資料速查
############################################################################# 本文取自一位朋友.這本來不算是什麽珍貴的東西,如果你平時注意收集的話,相信很多人都會有比這份更全面、更好的資料.但由于某些原因...查看完整版>>CGI安全漏洞資料速查
 
CGI 安全問題
CGI 安全問題作 者: Jeffry Dwight在計算機領域——尤其在Internet上——盡管大部分Web服務器所編的程序都盡可能保護自己的內容不受侵害,但只要CGI腳本中有一點安全方面的失誤--口令文件、私有數據、以及任何東西,...查看完整版>>CGI 安全問題
 
Linux 和 Unix 安全編程:環境變量
  環境變量 缺省情況下,環境變量從進程的父進程繼續而來。但是,在程序執行另一個程序時,調用程序可以把環境變量設置爲任意值。這對setuid/setgid程序而言很危險,因爲其入侵者...查看完整版>>Linux 和 Unix 安全編程:環境變量
 
用J2SE 1.4進行Internet安全編程(上)(1)
用J2SE 1.4進行Internet安全編程(上)(1)
服務器端任何在計算機網絡或者 Internet 中傳輸的消息都可能被攔截,其中不乏一些比較敏感的內容,如信用卡號或者其它一些私人數據。爲了更好的在企業環境和電子商務中使用 Internet,應用軟件必須使用加 密、驗證和...查看完整版>>用J2SE 1.4進行Internet安全編程(上)(1)
 
用J2SE 1.4進行Internet安全編程(下)(1)
客戶端 Java 安全套接擴展 (Java Secure Socket Extension, JSSE) 使 Internet 安全通信成爲現實。它是 SSL 3.0 (Secure Socket Layer) 及 TLS 1.0 (Transport Layer Security,由 SSL 3.0 改善而來) 的框架和實現。...查看完整版>>用J2SE 1.4進行Internet安全編程(下)(1)
 
 
回到王朝網路移動版首頁