01 $username = $_post['username'];
02 $query = "select * from auth where username = '".$username."'";
03 echo $query;
04 $db = new mysqli('localhost', 'demo', 『demo', 『demodemo');
05 $result = $db->query($query);
06 if ($result && $result->num_rows) else
使用mysql_real_escape_string()過濾資料
手動檢查每一資料是否為正確的資料型別
使用預處理語句並繫結變數
分離資料和sql邏輯
預處理語句將自動過濾(如:轉義)
把它作為乙個編碼規範,可以幫助團隊裡的新人避免遇到以上問題
01 $query = 'select name, district from city where countrycode=?';
02 if ($stmt = $db->prepare($query) )
03
12 $stmt->close();
13 }
01 <?php
02if (file_exists('comments')) else
0708
if (isset($_post['comment']))
12 >
輸出內容給(另乙個)使用者16
7<?php
echo $comments; ?>
煩人的彈窗
重新整理或重定向
損壞網頁或表單
竊取cookie
更新id
如果使用會話,請確保使用者使用ssl
1 !(
生成另乙個一次性的令牌並將其嵌入表單,儲存在會話中(乙個會話變數),在提交時檢查它。
01 09
<?php
10 if($theme)
13 ?>
過濾使用者輸入
在php.ini中設定禁用allow_url_fopen和allow_url_include。這將禁用require/include/fopen的遠端檔案。
設計伺服器端的安全指令碼:
—例如,使用單行執行 - 單點身份驗證和資料清理
—例如,在所有的安全敏感頁面嵌入乙個php函式/檔案,用來處理所有登入/安全性邏輯檢查
確保你的**更新,並打上最新補丁。
6個常見的 PHP 安全性攻擊
1 sql注入 sql注入是一種惡意攻擊,使用者利用在表單字段輸入sql語句的方式來影響正常的sql執行。還有一種是通過system 或exec 命令注入的,它具有相同的sql注入機制,但只針對shell命令。1 username post username 2 query select from ...
6個常見的 PHP 安全性攻擊例項和阻止方法
1 sql注入 sql注入是一種惡意攻擊,使用者利用在表單字段輸入sql語句的方式來影響正常的sql執行。還有一種是通過system 或exec 命令注入的,它具有相同的sql注入機制,但只針對shell命令。username post username query select from auth...
PHP安全性漫談之PHP安全性設定
伺服器並不能阻止所有的安全問題,例如程式漏洞問題 使用者輸入表單問題 php檔案許可權問題等。也可以通過一些手段來迷惑黑客或者別有用心者。1 程式 漏洞問題 很多 php 程式所存在的重大弱點並不是 php 語言本身的問題,而是程式設計者的安全意識不高而導致的。因此,必須時時注意每一段 可能存在的問...