2013-05-07 96 views
-1

我想隱藏我的數據庫連接細節,當黑客查看源代碼 時,他們可以將惡意代碼發送到我的數據庫。如何隱藏黑客的SQL語句?

例如:

<?php 
$con=mysqli_connect("example.com","peter","abc123","my_db"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('Peter', 'Griffin',35)"); 

mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('Glenn', 'Quagmire',33)"); 

mysqli_close($con); 
?> 

黑客現在知道我的數據庫的用戶名和密碼以及名字是什麼,他可以用惡意代碼注入我的數據庫。我搜索了該網站,但無法找到正確的格式來解決我的問題。

+10

如果黑客可以查看您的源代碼,他們也可以讀取您的密碼,他們可以讀取您的鹽分,加密密鑰和其他任何使安全可行的其他任何內容。訪問者不應該能夠看到你的源代碼。期。 – Halcyon 2013-05-07 15:35:59

+0

您可以定義用戶名和密碼,然後將它們存儲在不在您的網站目錄中的文件中,如果您確實擔心有人看到php。 – lemondrop 2013-05-07 15:36:00

+3

如果一切正常,用戶無法看到您的PHP源代碼,但將憑據放置在Web根目錄之外並在需要時包括它們是一種很好的做法。 – 2013-05-07 15:36:14

回答

3

Php是一種服務器端語言,不能被別人閱讀,除非他們擁有php文件,用戶在瀏覽器中看到的是瀏覽器解析的輸出。

只要你不回聲,打印或以任何方式顯示你應該很好的憑證。

+0

我的意思是,當我在同一頁面中編寫html表單和sql語句時,當用戶點擊查看瀏覽器源代碼時,他能夠看到它 – TheSniper104 2013-05-07 15:50:07

+0

如果代碼被封裝在php標籤中,它不能被查看源選項 – unasAquila 2013-05-07 15:51:35

+0

好的,謝謝我不知道, – TheSniper104 2013-05-07 16:04:48

1

他們無法讀取數據庫信息,除非他們真的被黑客攻擊或破解到您的Web帳戶。您可以對數據庫信息進行編碼,但這就是它。

正確的做法是防止訪問PHP代碼本身。如果只有included文件中的數據庫信息爲&,則可以通過Web服務器寫入,以防止犯規。這樣做的缺點是,如果需要更改信息,則需要root/admin帳戶來更新信息。

要防止SQL注入,您應該使用real_escape_string字符串和is_numeric數字。

+5

不,爲防止SQL注入,應該使用[prepared statements](http://bobby-tables.com/php.html)。 – 2013-05-07 15:45:08

+0

@MarcelKorpel這是另一個可能更簡單的選擇。感謝您的加入。 – 3ventic 2013-05-07 15:50:59