繁体   English   中英

防止机器人刮擦Coffescript文件的路由错误

[英]Preventing Routing Errors from Bots Scraping Coffescript Files

在我的咖啡脚本文件中,我有这个:

$('#map_of_users').html("<iframe src='/map/" + $(this).data('user_id') + "></iframe>"

机器人正在抓取该文件,并认为有一个要检出的URL,所以我在我的日志中收到一个看起来像这样的路由错误

No route matches [GET] "/map/%22+$(this).data(%22user_id%22)"

我确实想跟踪路由错误,所以我不能忽略所有这些错误,但是这些无聊的路由错误需要大量不必要的时间。

也许一个快速的解决方案是将所有coffeescript文件添加到robots.txt文件或app / assets / javascripts文件中的所有内容。 推荐什么?

注意:我还发布了一个不正确的解决方案,试图在routes.rb文件中解决这个问题,我想知道为什么它不起作用。

注意:此解决方案不起作用。 我发布了它,以听取有关它为什么不起作用的反馈。

如果你把它放在routes.rb中......

match '/map/%22+$(this).data(%22user_id%22)', :to => 'shared#unauthorized', via: [:get, :post]

转到http:// localhost:3000 / map /%22 + $(this).data(%22user_id%22)仍会产生此路由错误:

No route matches [GET] "/map/%22+$(this).data(%22user_id%22)"

我猜测路由器没有像浏览器那样读取%22(“)。有没有办法在路由器中进行补偿?

如果我在控制台中运行“rake routes”,它会显示正在读取的路由如下:

GET|POST /map/%2522+$(this).data(%2522user_id%2522)(.:format)

通过将%转换为其ASCII表示%25,Rails可能是双重编码。 可以预防吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM