C# 机器人/蜘蛛可以利用cookie吗?

C# 机器人/蜘蛛可以利用cookie吗?,c#,javascript,asp.net-mvc,C#,Javascript,Asp.net Mvc,我试图检测一个访客是否是人类。我只是有个想法,但不确定这是否有效。但是如果我可以在个人浏览器上存储cookie,并在他们浏览我的网站时检索它。如果我成功地检索到cookie,这是一种检测机器人和蜘蛛的好技术吗 一个精心设计的机器人或蜘蛛当然可以存储——并将您发送的任何cookie发送给您。所以,不,这种技术一点用都没有。浏览器只是代码。机器人只是代码。代码也可以做任何你编程的事情。包括饼干 机器人、垃圾邮件发送者和类似者的工作原理是低挂果实。他们追求尽可能多的网站或用户,尽可能不费吹灰之力。因此

我试图检测一个访客是否是人类。我只是有个想法,但不确定这是否有效。但是如果我可以在个人浏览器上存储cookie,并在他们浏览我的网站时检索它。如果我成功地检索到cookie,这是一种检测机器人和蜘蛛的好技术吗

一个精心设计的机器人或蜘蛛当然可以存储——并将您发送的任何cookie发送给您。所以,不,这种技术一点用都没有。

浏览器只是代码。机器人只是代码。代码也可以做任何你编程的事情。包括饼干

机器人、垃圾邮件发送者和类似者的工作原理是低挂果实。他们追求尽可能多的网站或用户,尽可能不费吹灰之力。因此,他们追求流行的软件包,如phpBB和vBulletin,因为进入这些软件包将使他们进入许多网站

出于同样的原因,如果只是为了你的网站,他们不会花很多精力进入你的网站(除非你的网站恰好是Facebook或类似网站)。因此,针对此类恶意活动的最佳防御措施就是以一种已经编写好的自动脚本无法在您的站点上工作的方式进行更改


但“我是人类”曲奇并不是答案。

不,正如亚历克斯所说,这行不通;典型的过程是使用一个
robots.txt
让它们表现出来。除此之外,您还开始研究
用户代理
字符串(但这可能是伪造的)。再多做些工作,你就进入验证码领域了


您实际上想避免什么?

您应该查看实际http头中的信息以及.Net如何向您公开这些信息。关于点击你网站的人的额外信息就在那里。看看Firefox正在做什么,下载Live Http Headers插件并转到您自己的站点。基本上,在页面级别,Request.Headers属性公开了这些信息。我不知道在asp.NETMVC中是否也一样。因此,您需要的重要标题是用户代理。显然,这是可以改变的,但是主要的爬虫程序会通过发送一个唯一的用户代理来识别他们,从而让您知道他们是谁。主要浏览器也是如此。

我编写了一个可以与cookie和javascript一起工作的机器人。防止bot/spam的最简单方法是在Ajax控制工具包中使用Nobot组件


可能是为了避免验证码:)