例如,我在項目中有url:http://localhost:3000/images/20/thumb/300x300。 300x300 - 動態寬度和圖像高度的url中的動態參數。我如何加密這個網址?可以通過爲http頭添加令牌?我需要這個來保護服務器生成不同寬度和高度的圖像(100x100,150x200,300x200 ...)顯示代碼示例。如何在rails中加密url
-6
A
回答
0
您可以在您的路線使用:
get 'images/:id/thumb/:size', size: /^[0-9]+x[0-9]+$/
,並在你的控制器,你可以這樣訪問圖像的ID和大小:
def show
@image= Image.find(params[:id])
width, height=params[:size].split("x").map{|s| s.to_i}
# ...
end
如果您有圖像的幾個固定的大小你接受那麼你可以使用約束如下:
Rails.application.routes.draw do
get 'images/:id/thumb/:size', size: /^[0-9]+x[0-9]+$/,
constraints: ImageSizeConstraint.new
end
class ImageSizeConstraint
def matches?(request)
params = request.path_parameters
if %w(100x100 150x200 300x200).include? params[:size]
return true
else
return false
end
end
end
0
從你的問題我知道nd您希望服務器僅渲染可接受的維度中的一個。所以,而不是加密的URL,你可以只是在你的控制器中過濾
...
ALLOW_THUMB_SIZES = %w(100x100 150x200 300x200)
...
def generate_image
thumb_size = params[:thumb_size]
if ALLOW_THUMB_SIZES.include? thumb_size
# do resize image to thumb_size here
else
# resize to some default size e.g. 300x300
# or throw exception...
end
end
...
+0
也許,作爲一個變種 – edenisn
+0
爲什麼麻煩從客戶端的網址,而你可以處理和過濾它從服務器。永遠不要相信任何客戶:) –
相關問題
- 1. 如何在rails中處理加密的URL?
- 2. 如何加密URL?
- 3. 如何在codeigniter中加密url參數?
- 4. 如何在javascript中加密url並在c中解密#
- 5. 如何做URL加密PHP
- 6. URL在Codeigniter中如何加密和解密。每次刷新加密值變化
- 7. 在PHP中加密URL
- 8. 在Objective-C中加密URL
- 9. 如何在java中加密和解密URl參數?
- 10. 如何在Android中加密URL參數並使用PHP解密?
- 11. 如何在asp.net中加密和解密url mvc
- 12. 如何加密MVC中的URL參數
- 13. Rails中的密碼加密
- 14. URL中的加密
- 15. Rails加密解密
- 16. 如何在碧玉服務器上啓用URL加密密碼
- 17. Tomcat在URL中加密中文單詞,如何取消它?
- 18. CakePHP加密URL
- 19. Jersey加密URL
- 20. HTTPs URL加密
- 21. Rails加密mysql
- 22. 如何集成測試加密的URL
- 23. 如何在Rails 5.1中使用Webpacker/React-rails中的Rails Url helper
- 24. Java中的URL加密
- 25. 軌道中的URL加密
- 26. URL中的加密參數
- 27. codeigniter中的URL加密
- 28. URL中的加密ID
- 29. zend中的URL加密
- 30. 如何在RSA中加密?
你是什麼意思加密url? –
請更具體地說明,爲什麼要加密url?你有什麼試過,你的問題是什麼?你能給我們一個你想實現的加密url的例子嗎? –
您可能對「加密」有不正確的理解? – MWiesner