所以,我想安全地從URL下載圖片。我的第一個想法當然是檢查擴展名 - 如果它兼容,只需下載並保存好擴展名(它應該是安全的,因爲服務器不會運行存儲在.jpg
文件中的PHP代碼(除非,除非它被配置爲這樣))。使用這種方法還存在一些風險,如果有更好的方法來做到這一點?通過URL安全地上傳/下載圖片
3
A
回答
0
/* gets the data from a URL */
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
獲取文件信息,您可以使用curl_getinfo()
更多信息here
這會幫助你通過URL下載任何東西用PHP。 而關於上傳?你想保存文件的地方或什麼?
+1
我不認爲你明白。我已經使用過file_get_contents(當然,我可以使用curl,但在當時沒有任何差異,所以只是爲了與它相處並測試..)。從url下載數據不是問題。問題是要做到這一點安全 - 我的意思是我希望這隻能用於圖像,所以我解析鏈接的擴展名,我保存了相同的擴展名(只允許image-ext),但它是否足夠安全,或者我應該檢查一些東西別的呢? 而安全我的意思是說,我不希望有人破解它,並上傳PHP shell或其他可能是危險的東西。 – RippeR
0
您應該檢查它是否是圖像,因爲可以操縱擴展名。
$file = file_get_contents($url);
if(@imagecreatefromstring($file)) {
// it's a valid image file; handle it
}
else {
// it's not an image file; error!
}
相關問題
- 1. 安全地上傳圖片
- 2. 在Django中安全地上傳圖片?
- 3. 安全圖片上傳PHP
- 4. 安全圖片上傳PHP
- 5. 安全上傳gif圖片
- 6. 安全圖像下載(通過url)與php
- 7. 上傳base64_decode圖片通過文件把內容安全嗎?
- 8. 通過php下載遠程圖像(安全地)
- 9. 通過PHP下載圖片
- 10. 通過webservice下載圖片
- 11. 上傳圖片和下載
- 12. 上傳圖片點擊下載圖片
- 13. 安全地通過一個URL通過URL在iframe中打開
- 14. 安全地加載Facebook資料圖片
- 15. 圖片在Swift上從Firebase上通過URL下載時橫向加載
- 16. 上傳圖像通過URL
- 17. 通過html5上傳圖片
- 18. 以編程方式下載圖片並通過Boto使用ImageField上傳圖片
- 19. 通過JSON安全地傳輸數據
- 20. 安全地通過bash傳遞密碼
- 21. idToken是否安全地通過API的非安全URL發送?
- 22. PHP圖片上傳安全 - gd/imagick/move_upload_file
- 23. 圖片上傳安全 - 與GD
- 24. 圖片上傳目錄安全
- 25. PHP文件圖片上傳安全
- 26. 圖片上傳安全問題
- 27. Facebook - 如何通過URL上傳照片?
- 28. 通過圖片URL或圖片上傳的圖片鏈接WordPress的
- 29. 通過傳遞url在newUploadPhotoRequest上傳圖片到Facebook
- 30. 從ios手機上下載url圖片
當你說「安全」時,你關心什麼? –
我擔心用戶可以利用exploit下載可執行文件或圖像來獲得對服務器的控制權。 – Ben
這是一個合理的擔憂嗎? – Ben