2017-06-15 97 views
0

我最近觀看了關於Facebook Messenger Bot的視頻教程。爲了從使用我的messenger bot的用戶那裏獲得消息,facebook使用php://輸入將原始json發送到我的服務器,然後我的服務器將它們作爲回覆消息發送回Facebook。 Facebook沒有使用任何參數將用戶消息轉發到我的服務器。我只是害怕有人用我的Messenger軟件來攻擊或收集關於我的服務器的信息。是php://輸入安全嗎?如果沒有,如何保護它?

示例代碼,Mr.Tutorial使用:

file_put_contents("fb.txt", file_get_contents("php://input")); 

這裏是視頻:https://www.youtube.com/watch?v=E2KOqRceipM

+0

爲什麼將用戶輸入保存爲服務器上的文件而沒有進行任何消毒處理? –

+0

哦,看json對象。這不是我的代碼btw –

+0

如果它只是一個文本文件,當用戶訪問它的url時會被下載,這將是相對安全的,但如果你的服務器是以某種方式執行該文件中的任何可能的代碼呢?我永遠不會保存在服務器上的用戶輸入沒有任何檢查 –

回答

1

php://input沒有任何或多或少的安全比你的電話。如果你拿起電話,有人告訴你把你的房子燒掉,你會把你的房子燒掉嗎?可能不會。

如果你做了類似exec(php://input)(psuedocode)的事情,你將會有糟糕的一天。相反,如果您只是閱讀輸入流並正確處理所獲得的數據,那就沒問題。

對輸入流沒有任何固有的安全或不安全感。這是你用它做的事情。

+0

如果輸入是「exec(code())」,該怎麼辦?它仍然執行代碼? –

+0

@KevinBradley exec會執行exec嗎?不,當然不是,這不會發生在自己身上。這將是PHP中的一個主要安全問題,使其對Web應用程序完全無用。 – Brad

+0

不,不是'exec(exec(system('id')))',這太可笑了。那麼,離開純粹的'php:// input'是否安全? –

相關問題