久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2025年度未來(lái)銀行科技服務(wù)商TOP100
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

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

2004-02-12 eNet&Ciweek

   每當(dāng)用戶(hù)輸入一個(gè)文件名,有可能就試圖打開(kāi)輸入危險(xiǎn)字符串! 例如,用戶(hù)輸入的文件名中包含路徑字符,如目錄斜杠和雙點(diǎn)!盡管你期望的是輸入公用的文件名:例如report.txt.但結(jié)果卻可能是/report.txt ../../report.txt ,系統(tǒng)中所有文件就有可能泄露出去,后果是可想而知的.

  如果用戶(hù)輸入一個(gè)已有文件名或?qū)ο到y(tǒng)的運(yùn)作有很重要的文件件名!比如輸入的文件名是/etc/passwd,那用戶(hù)就可以對(duì)該文件任意修改.可能第二天登錄網(wǎng)站時(shí)進(jìn)行更新的時(shí)候,你就發(fā)現(xiàn)密碼被別人修改了,那時(shí)你只有寫(xiě)信給系統(tǒng)管理員請(qǐng)求幫助了. 所以在編寫(xiě)CGI腳本時(shí)要保證所有字符都是合法的.   

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

  if(($file-name=~/[^a-zA-Z-.]/)  ($file-name=~/^./))

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

  最好將上面代碼做為一個(gè)子程序,這樣就可以重復(fù)地調(diào)用它這樣也方便于修改. 對(duì)于不允許輸入HTML下面有兩個(gè)方案.   

  1、有種簡(jiǎn)單的方法就是不允許小于號(hào)(<)和大于(>)因?yàn)樗蠬TML語(yǔ)法必須包含在這兩個(gè)字符間,如果碰到它們就返回一個(gè)錯(cuò)誤是一種防止HTML被提交的簡(jiǎn)單的方法. 下面一行Perl代碼快速地清除了這兩個(gè)字符:  

  $user-input=~s/<>//g;   

  2、復(fù)雜一點(diǎn)的方法就是將這兩個(gè)字符轉(zhuǎn)換成它們的HTML換碼(特殊的代碼),用于表示每個(gè)字符而不使用該字符本身. 下面的代碼通過(guò)全部用 lt;替換了小于符號(hào),用 gt;替換了大于符號(hào),從而完成了轉(zhuǎn)換:   

  $user-input=~s/

  $user-input=~s/>/>/g;

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見(jiàn),請(qǐng)?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com