<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                如果您通過網頁獲取用戶輸入的數據并將其插入一個MySQL數據庫,那么就有可能發生SQL注入安全的問題。 所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。 我們永遠不要信任用戶的輸入,我們必須認定用戶輸入的數據都是不安全的,我們都需要對用戶輸入的數據進行過濾處理。 很多時候我們采用動態拼裝sql,而這樣的方式很容易通過拼接sql字符串進行注入。 **例如** ~~~ $sql = "select * from user where uid=$uid"; ~~~ 以上SQL如果有字符串處理,是根本不會這么寫的,但有些時間沒有字符串時你可能也習慣這么寫,如果真這么寫那么問題就來了 假如訪問提交的是http://localhost/index.php?uid=1 or 1=1 SQL會變成: ~~~ select * from user where uid=1 or 1=1 ~~~ 通過上頁我們知道,加引號是多么重要的事情,加上引號看看效果會有什 么變化,SQL變為如下形式 SQL會變成: ~~~ select * from user where uid='1 or 1=1' ~~~ 但是如果你加了引號之后,如果用戶再訪問提交 http://localhost/index.php?uid=1' or 1=1%23 SQL會變成: ~~~ select * from user where uid='1' or 1=1#' ~~~ 依然可以進行注入,在這種情況下,我們需要怎么做呢,我們嘗試著把數據交給mysql_real_escape_string()或者addslashes()來轉義特殊的輸入字符。 SQL會變成: ~~~ select * from user where uid='1\' or 1=1#' ~~~ 注入方式絕大多數依賴 <>'"& 這幾個字符中的一個或幾個對內容進行注入攻擊。mysql_real_escape_string()并不能處理 <>,那這種情況下我們還應該怎么辦,咱們可以通過htmlspecialchars函數將這些字符轉換成無害的HTML 實體;目前TP的I方法就默認會對接收的數據通過這個函數進行過濾。 注入的場景有很多,在這里不一一列舉,大家感興趣,可以通過搜索引擎查找相關資料。 課外閱讀:http://blog.sina.com.cn/s/blog_51af865b01009xsx.html **安全注意事項** 1. 永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和 雙"-"進行轉換等。 2. 不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。 3. 應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝 4. 使用字符串查詢條件,使用預處理機制。 5. 對數據類型為整形的,可以強制轉換成整型。 6. 提高數據庫表和字段的命名技巧,對一些重要的字段根據程序的特點命名,取不易被猜到的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看