我的ASP.NET MVC 3网站上有几个页面(不是这里的技术很重要),我在页面的<script>
标签中渲染出某些URL,以便我的JavaScript(存储)在外部文件中)可以对服务器执行AJAX调用。
这样的事情:
<html>
...
<body>
...
<script type="text/javascript">
$(function() {
myapp.paths.someUrl = '/blah/foo'; // not hardcoded in reality, but N/A here
});
</script>
</body>
</html>
现在在服务器端,大多数这些URL受属性保护:
a)它们只能通过AJAX访问(例如XmlHttpRequest)
b)它们只能通过HTTP POST访问(因为它返回JSON - 安全性)
问题是,由于某种原因,机器人正在抓取这些网址,并尝试对其进行HTTP GET,导致404。
我的印象是机器人不应该尝试抓取javascript。那么他们如何掌握这些网址呢?
有什么方法可以阻止他们这样做吗?
我无法将这些URL变量真正移动到外部文件,因为正如上面代码中的注释所示,我使用服务器代码渲染URL(必须在实际页面上完成)。
我基本上已经将路由添加到我的网站到HTTP 410(Gone)这些URL(当它不是AJAX POST时)。这真的很烦人,因为它正在为我已经被篡改的路线表添加另一条路线。
任何提示/建议?
答案 0 :(得分:3)
禁止使用robots.txt中的前缀