前端打算用 ajax 来获取数据,可是怕辛辛苦苦输入的数据,被别人通过分析 ajax 返回的数据直接移花接木盗走。
是通过验证的防止防止这种行为的发生吗?可是目前网站是不需要注册即可使用,所以应该如何防止?
谢谢。
大概就是:
前端 -> 通过 ajax 获取数据 -> 后台 -> 返回数据
如何防止别人伪造 ajax 获取数据
回复内容:
前端打算用 ajax 来获取数据,可是怕辛辛苦苦输入的数据,被别人通过分析 ajax 返回的数据直接移花接木盗走。
是通过验证的防止防止这种行为的发生吗?可是目前网站是不需要注册即可使用,所以应该如何防止?
谢谢。
大概就是:
前端 -> 通过 ajax 获取数据 -> 后台 -> 返回数据
如何防止别人伪造 ajax 获取数据
这么说吧,你的目的就是提供给某些人一些数据,那么不让这些人抓你的数据就违反你最初的目的
这就像 我给你十块钱,我又不想让你拿这十块钱
我之前也是在这上面纠结过,采取种种措施,最后达到的效果不过是增大抓取的难度而已
这就和客户端加密一样,无论你怎么加密混淆,前提都是建立在一个可信任的信道上的,当信道不可信时,啥都没用
你网站不需要登录,那就默认了所有内容是免费提供给所有人的,直接浏览数据和调用 API 获取数据有区别么?
就算不提供 Ajax , 从网页上直接爬走是一样的啊,骚年.
“目前网站是不需要注册即可使用,所以应该如何防止”。
“别人伪造ajax获取数据”
首先你得知道如何区分 所谓的“别人”。但看问题里并没有说明。
看楼主的需求,应该是一种内容型的网站,需求应该就是怕别人剽窃自己的内容。
做任何事情都有成本,一个安全原则是提高对方的作案成本,付出的比得到的多很多,以达到让对方放弃作案的目的。
有个比较常见的方法是,将你们的内容(数据)在后端生成带水印的图片,ajax加载。至少别人不能直接用。
如果不進行身份驗證,怎樣防範都是徒勞的。因爲想要阻止「別人」,首先得識別「別人」。
身份驗證可以不是顯式的登錄,而是 Google 式的追蹤。要做到即便換瀏覽器換 IP 清空瀏覽器緩存、cookies 照樣能識別同一用戶。
能做到這些,再限制調用數據的頻率,對可疑者強制輸入驗證碼,基本就是 Twitter、Google 這些大公司的水準了。
楼主所说的这个数据终究要在某些合法页面被显示的,所以用什么方法也不能避免被盗用。只是盗用的成本问题
我想没有好办法。如果想拿到,是肯定能拿到的。
1、前端显示页面的时候后端输出一个唯一的签名;
2、Ajax 从前端发起请求到后端获取数据时需传递效验参数,后端再效验签名
不知道这个思路能否满足你的需求(不过这个思路的签名依旧可以被获得)
简单的话可以在每个ajax请求里加个sessionID。后端根据 sessionID 判断是否返回数据。但是没有办法完全避免爬虫来抓数据。
oauth2
每次发起ajax请求的时候验证一个token (加密串)即可
服务器判断referer, 如果referer的域名是自己的域名, 就返回, 不然就不返回。
Access-Control-Allow-Origin这个header就够了
网页是公开的,数据就是公开的,任何验证都是徒劳,都是可以被 robot 模仿的。
可能唯一有点作用的,就是对数据进行处理,比如小说网站就不传文字,
而是传由文字生成的图片,这是一个可以参考的例子。
服务器生成一个token(比如 md5(key+ip+date),这个规则只有管理员知道)与html一起下发给用户,然后由用户浏览器发起ajax请求,同时附加之前服务器生成的token,服务器判断来源网站域名+token正确后给用户发回数据。
之前为了防止投票作弊器,想到了这个办法。
一句话,只要是能看到的,就是可以拿到的,所以不用纠结了
這是可以徹底解決的,給大家一個思路,就是把文件放在瀏覽者的內存,至於瀏覽器緩存方面,可以利用overwrite緩存。讓盜竊者得到一個無用的文件,您還可以在文件內指出他由哪個IP取得這個文件,嚇唬他們一下,讓他們以後對偷竊沒信心。我以前在香港寫了很多程序,時而會被人偷了,所以研究了這個方法,希望大家不要把辛苦工作得來的成果讓小人們奪去。
我看到有个叫做_影xx_的,在这里骂人,佩服喔,他妈妈的辛辛苦苦凑大他,却连几行字都理解不到,大家说他懂干啥呢?
什么权限呀,许可证呀,给访问者种种难度只是排斥而已,做了前端就是想让所有人看,像_影xx_这种无能之辈都能看。这样才有趣,大家说对不对?
后端谁都不能看,这是对知识产权的保护。调用的src可以临时生成,也可以生成多次,也可以临时移除,缓存由我来控制,明白吗?在不明白就发邮件给我,我私下详细告诉你。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版
推荐:为Win版本,支持代码提示!