登錄檔單 伺服器端的資料有效性驗證

2021-06-16 00:19:53 字數 1068 閱讀 6906

1.trim()函式截去頭尾的空白字元

2.empty()函式判斷變數內容是否為空

3.判斷使用者名稱、密碼長度是否在規定範圍內

4.判斷兩次密碼是否一致

5.用正規表示式判斷email格式是否正確

6.判斷使用者名稱是否已存在

7.小心sql注入漏洞

小心sql注入漏洞

前面對客戶端提交的資料進行了截去頭尾空格然後判斷是否為空,判斷密碼長度是否在有效範圍,判斷email的格式是否有效,以及判斷使用者名稱是否重複等資料的有效性驗證,是否這就足夠了呢?其實還有乙個sql注入漏洞的問題值得重視。

客戶端提交上來的資料往往被用於構造sql語句,使用這些構造出來的sql語句訪問資料庫時會發生sql注入攻擊。所謂sql注入,即客戶端提交的資料用於構成了非法訪問資料庫的sql語句。

為防止sql注入漏洞,一是要遵循最小許可權的原則,即賦予連線資料庫的使用者盡可能小(僅能執行預期的操作)的許可權,嚴禁使用特權使用者(如root);二是要盡可能地過濾由客戶端提交上來的可疑的非法資料。

假設在伺服器端將執行如下sql語句:

$sql = "delete from t_user where f_username='$username'";

這條sql語句的本意是根據客戶端的要求刪除特定使用者,但是如果乙個不懷好意的訪問者知道伺服器端的資料庫的使用者資訊表的名稱,而且提交了乙個使用者名為「1' or 1 --」的資料,即$username = "1' or 1 – –"。此時將上面這條sql語句中的$username替換成提交上來的實際值後成為:

$sql = "delete from t_user where f_username='1' or 1 –- '";

由於刪除條件中的「or 1」,結果表t_user中的記錄將被全部刪除。

要防範sql注入漏洞,實際上只要遮蔽一些sql命令及關鍵字即可。在進行伺服器端的資料有效性驗證之前,呼叫以下函式即可防止sql注入漏洞:

<?php

function checkillegalword ()

}}// foreach

}checkillegalword(); // 在本檔案被包含時即自動呼叫

?>

接入微信公眾平台之驗證伺服器位址的有效性

1 填寫伺服器配置 2 驗證伺服器位址的有效性 3 依據介面文件實現業務邏輯 引數描述 signature timestamp 時間戳nonce 隨機數echostr 隨機字串 1 將token timestamp nonce三個引數進行字典序排序 2 將三個引數字串拼接成乙個字串進行sha1加密 ...

實現 手機端和伺服器端的資料同步技術

將源資料庫表的資料複製到 sql server compact edition 資料庫的表中。源資料庫連線接物件。目標 sql server compact edition 資料庫連線物件。源資料的查詢語句。目標資料庫表名稱。本方法假設目標 sql server compact edition 資料...

Android 客戶端資料和伺服器端的同步

今天研究的主題是 客戶端的資料重新整理,如何實現和客戶端資料庫的資料的同步,需要保證以下幾點 1.客戶端的資料儲存在客戶端本地,如果伺服器端資料沒有更新,不做無效重新整理 知乎上盧旭輝 的回答 因此本應用的資料等文字型別決定採用 每天更新一次資料,然後提供給使用者強制重新整理資料的功能。另外同步的問...