2012-04-11 44 views
0

這裏的問題是,我需要從我的C#應用​​程序連接到遠程MySQL數據庫,問題是MySQL實例將阻止所有IP訪問除本地主機外的所有IP,因此無法將其更改爲它太多的安全問題。通過PHP腳本隧道連接到MySQL

問題是,是否有可能通過隧道連接,而不是服務器上託管的PHP腳本,這將作爲MySQL連接。

任何想法和建議?

+0

所以你有PHP腳本推動sql命令到本地mysql服務器?聽起來像是一個破解會造成一個巨大的安全漏洞。你不能只是打開mysql到一組特定的IP? – 2012-04-11 11:31:03

+0

@LeeDavis問題是,使用該軟件的人每天都會在不同的客戶端上出現這種情況,這會導致更多的安全問題,比保護php腳本 – Neo 2012-04-11 11:50:19

回答

0

我最終選擇了SSH端口隧道並實現了我需要的方式。

0

是的,只需創建一個簡單的PHP腳本,它會給你所需的輸出,並使用來自c#應用程序的http請求到該PHP腳本來獲取數據 - 基本上,你將構建一個非常簡單的REST API認證)

ps我不明白這是如何比SSH隧道更安全

+0

更多的信息? – Neo 2012-04-11 11:50:30

2

SQLYog(一個MySQL管理GUI工具)已經有了自己的定製API這個PHP隧道腳本,所以如果你考慮自己寫,它會很好有交叉支持。請參閱Is there any good universal PHP MySQL HTTP tunnel?

+0

嗯,如果我正在閱讀這個權利,他們將xml傳遞給php腳本來運行命令並返回xml。雖然這將工作,我可以創建自己的API系統,但想法是打開mysql到原始命令而不掛接到端口3306. – Neo 2012-04-11 13:13:52

+0

那麼,因爲MySQL使用TCP(或套接字或管道)作爲其協議,而PHP通過調用一個HTTP Web服務器..你需要運行PHP作爲守護進程,因此仍然需要一些端口來維護TCP。這是毫無意義的。同樣的問題以前也被關閉.. http://stackoverflow.com/questions/5539793/tunnelling-tcp-over-http – 2012-04-11 13:29:20