我有一个相当大的音乐网站,有一个大型的艺术家数据库.我一直在注意其他音乐网站抓取我们网站的数据(我在这里和那里输入虚拟艺术家名称然后谷歌搜索它们).
如何防止屏幕抓取?它甚至可能吗?
首先,一点背景:我正在为CodeIgniter实现一个auth + auth系统并不是什么秘密,到目前为止我赢了(可以这么说).但是我遇到了一个非常重要的挑战(大多数auth库完全错过了,但我坚持正确处理它):如何智能地处理大规模,分布式,可变用户名的暴力攻击.
我知道所有常用的技巧:
现在,这些只是理论上可行的想法.有很多垃圾想法可以打开网站(比如琐碎的DoS攻击).我想要的是更好的东西.更好的是,我的意思是:
它必须安全(+)抵御DoS和暴力攻击,并且不会引入任何新的漏洞,这些漏洞可能会让稍微狡猾的机器人继续在雷达下运行
它必须是自动化的.如果需要人工操作员验证每次登录或监控可疑活动,那么它无法在真实场景中运行
它必须适用于主流网络使用(即可由非程序员执行的高流失率,高流量和开放式注册)
它不会妨碍用户体验到临时用户会感到烦恼或沮丧(并可能放弃网站)
它不能涉及小猫,除非它们真的是非常安全的小猫
(+)'安全',我的意思是至少和偏执的用户保密密码一样安全
所以 - 让我们听听吧!你会怎么做?你知道我没有提到过的最佳实践(哦,请你说)吗?我承认我对自己有所了解(结合3和4的想法),但我会让真正的专家在让自己尴尬之前说话;-)
我正在使用PHP和MySQL建立一个站点,它本质上只是现有数据库的Web前端.可以理解的是,我的客户非常希望能够阻止任何人在数据库中复制数据,同时希望所有内容都公开,甚至"查看全部"链接以显示数据库中的每条记录.
虽然我已经采取了一切措施来防止诸如SQL注入攻击之类的攻击,但没有什么可以阻止任何人将所有记录都视为html并运行某种脚本来将这些数据解析回另一个数据库.即使我要删除"查看全部"链接,理论上仍然可以使用自动化过程逐个浏览每个记录并将这些记录编译到新数据库中,从根本上捏取所有信息.
有没有人有任何好的策略来防止甚至只是阻止它们可以分享.
我想只保护每个请求后显示的某些数字.大约有30个这样的数字.我计划在这些数字的位置生成图像,但如果图像没有像验证码那样扭曲,那么脚本是否能够破译数字呢?此外,加载图像对文本的性能影响有多大?