2013-03-03 103 views
0

請多多包涵,如果這聽起來有點可笑,但我只是剛剛學會PHP和jQuery的基本知識,在過去的兩個星期。對於任何有經驗的人來說,這可能是顯而易見的,所以我很欣賞你可以分享的任何信息。SQL注入與API查詢,以及其他安全問題

我正在更新我的網站以包含通過cURL調用查詢SQL數據庫的自定義搜索功能。總之:

  1. 我把用戶輸入從HTML形式(包括文本框),然後發佈在我的域值到PHP文件(searchfunction.php)我的服務器上。

  2. searchfunction.php然後處理表單數據,將其添加到包含私有API密鑰(格式爲http:// apidomain/[api key] /request.php?querystring)的URL查詢字符串中,並通過curl_init發送給第三方服務器。

  3. 的第三方服務器然後返回基於URL的查詢字符串序列化PHP數組。 PHP文件然後處理數組並回應一些與原始用戶表單顯示在同一頁面上的HTML(通過一些我幾乎不瞭解的jQuery魔術)。

這裏是我的問題:

Q1)因爲我送的捲曲串到然後處理所有的SQL東西的API,我是在一個SQL注入的危險嗎?如果是這樣,消除這種風險的理論是什麼? Q2)如何隱藏私人API密鑰?瀏覽器的URL欄永遠不會包含它,但是有沒有一種簡單的方法 - 可能通過.htaccess文件 - 來保持窺探PHP文件的內容,該文件處理表單數據並返回HTML?

Q3)我應該注意到有其他明顯的安全漏洞嗎?有通過API寫入數據庫的方法(儘管不是沒有API密鑰和適當的查詢字符串語法),所以我怎樣才能防止惡意用戶操縱cURL調用?

感謝您的幫助提前。現在我已經進入讓我的網站與其他服務器交談的令人困惑的世界,我發現自己完全沉迷於自己的頭腦中,尤其是當涉及到安全問題時。

+0

[偉大的逃避現實(或:你需要知道如何處理文本中的文本)](http://kunststube.net/escapism/) – deceze 2013-03-03 21:32:54

+0

我讀過「如何防止PHP中的SQL注入」我只通過cURL通過API調用與SQL數據庫進行交互,我不認爲它適用於我的問題。你認爲它確實嗎?順便說一下,偉大的文章。 – Chris 2013-03-03 21:53:03

+0

它始終適用。這不僅僅是關於SQL注入,它只是關於**避免語法錯誤**。避免語法錯誤,並自動避免SQL注入。 – deceze 2013-03-03 22:05:33

回答

0

PHP是服務器端,所以,除非你echo'ing到按鍵或造成警告/錯誤(這可能會抱怨你的網址包含了API密鑰)是沒有問題的。而且你也不知道api的SQL數據處理方式(除非它是開源的),所以它並不重要。如果他們安全,他們是安全的。如果你不確定你應該向他們詢問他們的安全問題(從不傷害到讓他們知道這是一件大事)。