sql 注入問題

2021-09-08 12:15:32 字數 1156 閱讀 5919

1.

關於使用intval強制轉換成數字的問題。數字大於2147483647會出現溢位出現負數。使用個方法來替代這個吧

$n="\n";

$a=2147483648.05555;

echo intval($a).$n; //result -2147483648

echo (int) $a,$n;//result -2147483648

echo floatval($a).$n;//result 2147483648.0556

echo floor(floatval($a)).$n;//result 2147483648

大於等於11位數的要用floatval(13714482984)

2.htmlspecialchars,strip_tags,stripslashes 這些可以過濾字串

3.

$uid = isset($_get['

uid']) ? $_get['

uid'] : 0

;$uid =addslashes(uid);

$sql = "

select uid,username from user where uid=''

"; // 安全性更高

$uid = isset($_get['

uid']) ? $_get['

uid'] : 0

;$uid =addslashes(uid);

$sql = "

select uid,username from user where uid=

"; //安全性低

帶有引號的話,sql想注入,黑客必須要先想辦法閉合'' (引號),增加黑客難度

addslashes  會把庫號進行轉義

最佳解決辦法是用intval,int,floatval

4.正則過濾字元(字元超長處理)

如:http://localhost/dailian/index.php?g=service&m=order&a=index&order_sn=201611022150472413';545a

$f = preg_replace('/(\d+).*/','\\1',$order_sn);

輸出:201611022150472413

SQL注入問題

什麼是sql注入問題?就是在拼接sql語句時,有一些sql的特殊關鍵字參與字串拼接,會咋總成安全問題 例如 輸入使用者民名和密碼時拼接sql語句 使用者名稱任意,密碼為乙個恒等式 select from user where usernamr sadfasfa 任意 and password a o...

SQL注入問題

sql 注入式攻擊是未將 與資料進行嚴格的隔離 導致在讀取使用者資料的時候 錯誤地把資料作為 的一部分執行而導致一些安全問題。sql 注入自誕生以來以其巨大的殺傷力聞名。典型的 sql注入的例子是當對 sql 語旬進行字串拼接操作時 直接使用未加轉義的使用者輸入內容作為變數 比如 var testc...

SQL注入問題

斌斌 給我寫信出處!背景 對於ibaits引數引用可以使用 和 兩種寫法,其中 寫法會採用預編譯方式,將轉義交給了資料庫,不會出現注入問題 如果採用 寫法,則相當於拼接字串,會出現注入問題。在使用ibatis時,我們的查詢一般按如下寫法進行配置。select from emp where name ...