2014-05-21 71 views
0

請驗證我的SQL查詢是否是足夠安全距離谷歌的SQL攻擊無論是從的Googlebot攻擊保護SQL查詢(谷歌SQL注入)

<a href="secondpage.php?name=men">men</a> 

上面的鏈接是要下一個頁面,並通過名稱變量,有男人作爲價值... 和第二頁,即時執行我的SQL查詢如下。

$lcSearchVal=$_GET['name']; 

$lcSearcharr=explode("-",$lcSearchVal); 
foreach($lcSearcharr as $lcSearchWord){ 
$lcSearchWord = mysqli_real_escape_string($mysqli, $lcSearchWord); 
$lcSearchWord = preg_replace('/%/', '\%', $lcSearchWord); 
    $parts[] = '`Description` LIKE "%'.$lcSearchWord.'%"'; 

} 


    $countsql2='SELECT * FROM xml WHERE ('.implode ('AND',$parts).')'; 
    //print($countsql2); 
    $countsql3 = mysqli_query($mysqli, $countsql2) or die("Cannot Get Pname Info: (".mysql_error().")"); 
    $androws = mysqli_num_rows($countsql3);  

while($row = mysqli_fetch_array($countsql3)) { 
     $countArray1[] = $row; 
     } 

請檢查我的sql查詢是否安全從谷歌SQL注入或不。

+3

Google sql攻擊?這是我聽說的第一個 – asprin

+0

可能是我用錯了term.Please幫助谷歌sql注入 – user3615820

+0

那麼你知道什麼*谷歌SQL注入*? – Gumbo

回答

0

Google SQLi攻擊?我想你不會理解,如果谷歌捲曲你的網站,並添加一種「惡意」的字符,危害你的網站這不是因爲他們想這是因爲你不過濾你從用戶的查詢。

因爲它看起來像在你的代碼中,你可以使用mysqli_real_escape_string過濾你的查詢。

如果想使用的mysqli逃避你的字符串,你可以這樣做:

$lcSearchVal=$_GET['name']; 
$query = $dbConnection->prepare('SELECT * FROM xml WHERE Description LIKE ?'); 
$query->bind_param('s', $lcSearchVal); 

$query->execute(); 
$result = $query->get_result(); 
// then run while fetch_assoc() or similar loop to fetch the data. 

基本上永遠不要相信用戶無論是谷歌還是隻是一個簡單的用戶總是驗證數據,因爲它可以被操縱。

閱讀更多在這裏:

所有的

http://www.php.net/manual/en/mysqli-stmt.bind-param.php

0

首先,搜索引擎的機器人可以通過SQL注入損害網站本身是相當不可能的。搜索引擎機器人只跟隨在其他網頁上找到的鏈接。

因此,如果實際上發生搜索引擎bot觸發有害的SQL注入,那麼必須有另一個網頁帶有指向包含SQL注入有效負載的網站的鏈接, g .:

<a href="http://example.com/secondpage.php?name=' evil SQL code …"> 

但是,您的代碼看起來很安全。

+0

k.thanks很多人fr幫助.. – user3615820