• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

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

    發布: 2007-7-04 20:04 | 作者: admin | 來源:  網友評論 | 查看: 15次 | 進入軟件測試論壇討論

    領測軟件測試網 文件名是提交給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/</</g;
    $user-input=~s/>/>/g;

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>