2010-08-21 54 views
1

如何使它成爲只有JS和PHP文件在同一臺服務器上才能執行ajax請求?如果javascript調用與PHP文件在同一服務器上,我該如何才允許ajax請求?

+1

你想要做什麼? – Sarfraz 2010-08-21 21:23:14

+0

這個問題沒有道理。 Javascript是在客戶端,因此它不能與PHP文件在同一臺服務器上(除非客戶端碰巧是*服務器) – NullUserException 2010-08-21 21:24:19

+0

請仔細閱讀,不可能做一個ajax後調用跨域作爲默認 - 但想要絕對確定這是不可能的。 – Splynx 2010-08-21 21:26:09

回答

1

答案是,你不能。

你可以做的最好的事情就是搭建一個容易解決的障礙。所以如果你只是這樣做阻止其他人直接訪問你的AJAX API而不通過你的Javascript,那麼這可能就足夠了,例如檢查HTTP_X_REQUESTED_WITH服務器變量。但這很容易解決。

如果你是爲了安全起見,簡單的答案是這是不可能的。

在設計內部AJAX API時,您必須簡單地記住您的Javascript可以請求的任何內容,外部客戶端(例如機器人)也可以請求。因此,請勿泄露您不希望其他人能夠看到的任何信息,或者允許請求執行任何您不希望其他人能夠執行的操作。

如果只需要爲經過身份驗證的用戶提供訪問權限,那麼您需要爲您的AJAX API應用與您的網站其他部分相同的身份驗證,因爲它可以輕鬆地由第三方請求您的網站的其餘部分。

+0

如何在.htacces中限制它? – 2015-08-02 11:46:49

+0

@SvenB不,你不能在服務器級別做任何事情。 想想這樣:你允許世界上的任何人訪問你的API並給他們代碼(你的網站和它的Javascript)來做到這一點。您無法控制是否修改此代碼或以任何方式發出直接請求,這些請求均來自其機器。你無法區分。你可以做的最多的事情就是混淆 - 讓他們很難理解你的代碼是如何做的 - 但是這樣做的好處是有限的,開發者工具仍然可以讓他們很容易地看到它是如何發生的。 – thomasrutter 2015-08-03 00:56:20

相關問題