例如,我在项目中有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. 如何在codeigniter中加密url参数?
- 2. 如何在javascript中加密url并在c中解密#
- 3. 如何在Android中加密URL参数并使用PHP解密?
- 4. 如何在java中加密和解密URl参数?
- 5. 如何加密MVC中的URL参数
- 6. URL中的加密
- 7. Rails加密解密
- 8. 如何在碧玉服务器上启用URL加密密码
- 9. Tomcat在URL中加密中文单词,如何取消它?
- 10. codeigniter中的URL加密
- 11. URL中的加密参数
- 12. URL中的加密ID
- 13. 轨道中的URL加密
- 14. Java中的URL加密
- 15. 如何在Rails 5.1中使用Webpacker/React-rails中的Rails Url helper
- 16. 如何在RSA中加密?
- 17. 如何在AutoMapper 6中加密密码?
- 18. 如何在Java中加密RDP密码
- 19. 如何在Python pysftp中加密密码?
- 20. 如何在Laravel 5.5中加密搜索的GET url?
- 21. 如何在CakePHP 3中通过URL发送加密哈希?
- 22. 加密,使用Rails解密
- 23. 如何在Rails中进行URL重写?
- 24. 如何在Rails/Ruby中操作URL?
- 25. 如何在Rails中获取URL参数?
- 26. 如何在rails中发送URL请求?
- 27. 如何在rails中打开URL?
- 28. 如何在rails中查找post URL?
- 29. 如何在rails中创建哈希URL?
- 30. 如何在Rails URL中使用UTF?
你是什么意思加密url? –
请更具体地说明,为什么要加密url?你有什么试过,你的问题是什么?你能给我们一个你想实现的加密url的例子吗? –
您可能对“加密”有不正确的理解? – MWiesner