php檢查漏洞防護補丁-防護XSS,SQL,檔案包含等多種高危漏洞

來源:互聯網
上載者:User

標籤:

/** * 通用漏洞防護補丁 * 功能說明:防護XSS,SQL,代碼執行,檔案包含等多種高危漏洞 * Class CheckRequestServer */class CheckRequestServer{    /**     * 過濾提交資料正則     * @var array     */    protected static $filterUrl = [        ‘xss‘ => "\\=\\+\\/v(?:8|9|\\+|\\/)|\\%0acontent\\-(?:id|location|type|transfer\\-encoding)",    ];    /**     * 過濾提交資料正則     * @var array     */    protected static $filterArgs = [        ‘xss‘   => "[\\‘\\\"\\;\\*\\<\\>].*\\bon[a-zA-Z]{3,15}[\\s\\r\\n\\v\\f]*\\=|\\b(?:expression)\\(|\\<script[\\s\\\\\\/]|\\<\\!\\[cdata\\[|\\b(?:eval|alert|prompt|msgbox)\\s*\\(|url\\((?:\\#|data|javascript)",        ‘sql‘   => "[^\\{\\s]{1}(\\s|\\b)+(?:select\\b|update\\b|insert(?:(\\/\\*.*?\\*\\/)|(\\s)|(\\+))+into\\b).+?(?:from\\b|set\\b)|[^\\{\\s]{1}(\\s|\\b)+(?:create|delete|drop|truncate|rename|desc)(?:(\\/\\*.*?\\*\\/)|(\\s)|(\\+))+(?:table\\b|from\\b|database\\b)|into(?:(\\/\\*.*?\\*\\/)|\\s|\\+)+(?:dump|out)file\\b|\\bsleep\\([\\s]*[\\d]+[\\s]*\\)|benchmark\\(([^\\,]*)\\,([^\\,]*)\\)|(?:declare|set|select)\\b.*@|union\\b.*(?:select|all)\\b|(?:select|update|insert|create|delete|drop|grant|truncate|rename|exec|desc|from|table|database|set|where)\\b.*(charset|ascii|bin|char|uncompress|concat|concat_ws|conv|export_set|hex|instr|left|load_file|locate|mid|sub|substring|oct|reverse|right|unhex)\\(|(?:master\\.\\.sysdatabases|msysaccessobjects|msysqueries|sysmodules|mysql\\.db|sys\\.database_name|information_schema\\.|sysobjects|sp_makewebtask|xp_cmdshell|sp_oamethod|sp_addextendedproc|sp_oacreate|xp_regread|sys\\.dbms_export_extension)",        ‘other‘ => "\\.\\.[\\\\\\/].*\\%00([^0-9a-fA-F]|$)|%00[\\‘\\\"\\.]",    ];    /**     * 資料過濾     * @param $filterData     * @param $filterArgs     */    protected static function filterData($filterData, $filterArgs)    {        foreach ($filterData as $key => $value) {            if (!is_array($key)) {                self::filterCheck($key, $filterArgs);            } else {                self::filterData($key, $filterArgs);            }            if (!is_array($value)) {                self::filterCheck($value, $filterArgs);            } else {                self::filterData($value, $filterArgs);            }        }    }    /**     * 資料檢查     * @param $str     * @param $filterArgs     */    protected static function filterCheck($str, $filterArgs)    {        foreach ($filterArgs as $key => $value) {            if (preg_match("/" . $value . "/is", $str) == 1 || preg_match("/" . $value . "/is", urlencode($str)) == 1) {                //記錄日誌 - 資訊攔截                exit(‘您的提交帶有不合法參數,謝謝合作‘);            }        }    }    /**     * 資料檢查入口     */    public static function run()    {        $referer     = empty($_SERVER[‘HTTP_REFERER‘]) ? [] : [$_SERVER[‘HTTP_REFERER‘]];        $queryString = empty($_SERVER["QUERY_STRING"]) ? [] : [$_SERVER["QUERY_STRING"]];        self::filterData($queryString, self::$filterUrl);        self::filterData($_GET, self::$filterArgs);        self::filterData($_POST, self::$filterArgs);        self::filterData($_COOKIE, self::$filterArgs);        self::filterData($referer, self::$filterArgs);    }}CheckRequestServer::run();

  

php檢查漏洞防護補丁-防護XSS,SQL,檔案包含等多種高危漏洞

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.