毕业选题选了基于 internet 的网页防篡改技术, 安全方向没什么基础,现在一头雾水, 求各位学长和大佬给指个方向, 我可以做个什么项目?
1
lhx2008 2019-01-10 22:26:57 +08:00 via Android
好像听说过,是做个东西监控网页,被人改了就改回来
|
2
d3vil 2019-01-10 22:27:37 +08:00 via iPhone
防 XSS 插件?
|
3
masker 2019-01-10 22:28:58 +08:00
以前好像看过某个大佬的博客就是这样,审查元素改了网页代码,就自动复原并弹窗,超过三次就黑名单了
|
4
hoythan 2019-01-10 23:09:12 +08:00
dom 监听
|
5
fox0001 2019-01-10 23:09:33 +08:00 via Android
防中间人攻击? HTTPS ?
|
7
qsnow6 2019-01-10 23:10:43 +08:00 via iPhone
https md5 tag
|
12
niuoh 2019-01-10 23:16:22 +08:00 via Android
网页加载完毕后记录整个网页的字符串 定时重新获取对比之类的吧
|
14
geying 2019-01-10 23:26:19 +08:00 via iPhone
签名 检查 回滚?
|
15
lengxu 2019-01-10 23:42:48 +08:00 1
把整个网页用 FTP 备份下来,然后实时监控现有网页文件的 hash,如果发现篡改即可用原备份的网页恢复即可实现简单的网页防篡改。
|
16
zyqf2016 2019-01-10 23:57:05 +08:00
哈希 JS 检测?
|
17
zk123 2019-01-11 00:04:03 +08:00 via iPhone
Https,证书
|
18
mauve 2019-01-11 00:16:14 +08:00 via Android 1
网页放一张图片不就完事了
|
19
udev 2019-01-11 00:38:10 +08:00
1、代理型(非侵入),就是对静态页面进行篡改监视,并用户请求代理时还原(无法还原目标业务应用真正文件)
2、驱动型(侵入式),在目标服务器安装文件驱动,监听对文件的读写事件,可以用原来文件进行还原。 先确定你自己想做能做哪一类? |
20
tanranran 2019-01-11 00:39:45 +08:00 1
1:flash
2:服务端生成图片 前端显示 |
21
hoythan 2019-01-11 01:12:28 +08:00 1
```
DOM2 级的变动( mutation )事件能在 DOM 中的某一部分发生变化时给出提示。变动事件是为 XML 或 HTML DOM 设计的,并不特定于某种语言。DOM2 级定义了如下变动事件: ( 1 ) DOMSubtreeModified:在 DOM 结构中发生的任何变化时触发。这个事件在其他任何事件触发后都会触发。 ( 2 ) DOMNodeInserted:在一个节点作为子节点被插入到另一个节点中时触发。 ( 3 ) DOMNodeRemoved:在节点从其父节点中被移除时触发。 ( 4 ) DOMNodeInsertedIntoDocument:在一个节点被直接插入文档或通过子树间接插入到文档之后触发。这个事件在 DOMNodeInserted 之后触发。 ( 5 ) DOMNodeRemovedFromDocument:在一个节点被直接从文档中移除或通过子树间接从文档中移除之前触发。这个事件在 DOMNodeRemoved 之后触发。 ( 6 ) DOMAttrModified:在特性被修改之后触发。 ( 7 ) DOMCharacterDataModified:在文本节点的值发生变化时触发。 ``` |
22
chashao 2019-01-11 01:20:22 +08:00 via Android
用 git ?
|
23
zerozerone 2019-01-11 01:24:16 +08:00 via Android 2
你监控的是服务端篡改还是客户端篡改,还是中间人篡改
|
24
dangyuluo 2019-01-11 01:27:36 +08:00
杠一下,《基于 internet 的网页防篡改技术》,既然是网页了,还有基于别的东西的网页防篡改技术么?
|
25
autoxbc 2019-01-11 02:14:21 +08:00 1
理论上讲,你怎么添加的监听,就可以怎么移除监听
|
26
NBOne 2019-01-11 02:56:17 +08:00 via Android
做做来了,记得发个测试页 让我改改看
|
27
Tink 2019-01-11 08:08:43 +08:00 via iPhone
canvas 画出来网页
|
29
sdlearn 2019-01-11 08:35:42 +08:00 via Android
git status 最实际
|
31
ShangAliyun 2019-01-11 08:38:19 +08:00
https 传输图片试试
|
32
lihongjie0209 2019-01-11 08:39:34 +08:00
找个安全厂商咨询一下, 不就清楚了吗
|
33
dontaskcece 2019-01-11 08:42:00 +08:00 via Android
做成 jpg,放 cdn 上,设置 expire,看谁能改
|
34
annielong 2019-01-11 09:15:39 +08:00
是监控服务器的文件还是监控浏览器显示出来的页面?第一种好做, 第二种不好办,浏览器无法控制,使用 js 也有可能禁用
|
35
NBOne 2019-01-11 09:19:30 +08:00 via Android
@dontaskcece 防篡改 应该是不能增减、修改页面内容 换成图片 虽然改有点困难,但是可以很容易增减啊。再说,图片也可以改的啊
|
36
SwiftFrank 2019-01-11 09:26:08 +08:00 1
https://juejin.im/post/5c137f37f265da6133567735 前端安全相关的分享文, 给你参考一下.
|
37
weixiangzhe 2019-01-11 09:28:59 +08:00
写个防运营商注入的吧,挺烦这个的
|
38
heiybb 2019-01-11 09:29:37 +08:00 via Android
想到是直接一个 watchdog 就好了
|
39
dremy 2019-01-11 09:30:06 +08:00 via iPhone
基于 ingernet ?貌似应该跟网络传输有点关系,但这样的话论文标题应该改为《防止“基于 internet 的网站篡改”技术》吧?
|
40
crs0910 2019-01-11 09:32:57 +08:00 via iPhone
https://github.com/rrweb-io/rrweb
这个库可能有技术是你用得到的 |
41
wizardoz 2019-01-11 09:33:35 +08:00
https 已经实现了啊
|
42
xyaly 2019-01-11 09:34:37 +08:00
无非就是外挂轮询扫描、事件触发实时监控、Web 核心内嵌比对 Md5 和水印、网关缓存、底层驱动层级几种技术。现在常见主要还是基于操作系统底层文件驱动来处理。
|
44
Hypn0s 2019-01-11 09:34:55 +08:00 via Android
canvas 画出来
|
45
ic2y 2019-01-11 09:35:43 +08:00
@tail2 看看这个库 https://0kee.360.cn/hxj/#/
|
47
stephenliubp 2019-01-11 09:38:12 +08:00
防止篡改可以换个思路,就是让他不知道怎么改、如何改?改了看到的数据也无效。这样子也叫做反爬虫技术,看看 [Web 端反爬虫方案]( https://github.com/FantasticLBP/Anti-WebSpider)
|
48
xyjincan 2019-01-11 09:39:03 +08:00
多级网页服务器
|
51
yinjunjian0 2019-01-11 09:41:50 +08:00
csrf 可以写一堆了
|
52
millken 2019-01-11 09:45:54 +08:00
以前搞过,MD5 是不行的,常见场景是攻击者进入后台,只修改了首页引用的图片内容,首页的 MD5 是不会变的,但是页面实际已经被篡改了。
一般理解防篡改就是直观感受页面有没有变化(非代码层面),这里可以保存页面的截图,然后对图片使用相似度对比算法。给定一个阈值,当低于阈值就表明图片内容发生了改动。当然这里还要考虑诸如轮播,日期 /时间,ajax 显示等因素。 |
53
jackchao7432 2019-01-11 09:50:28 +08:00
@mauve 那动态页面的呢?
|
54
qilishasha 2019-01-11 10:01:37 +08:00
防篡改只能用于服务器不被攻破,解析服务器不被攻破的理想环境。就是不停的进行文件同步,根本不用检测前端服务器文件是不是被修改,什么鬼文件水印什么的,通通一把梭子——文件同步即可,天存就是这么干的。实际大型 ZF 网站集约化运维经验来看,外围防护现如今已经很牛 X 了。
|
55
TonyGong 2019-01-11 10:31:27 +08:00
可以考虑做个网页虚拟机,把网页转为虚拟机代码,客户端渲染是通过虚拟机实现
|
56
wsstest 2019-01-11 10:31:39 +08:00 1
2 种思路
1.类似 WAF 上带的功能,记录某个页面的响应内容,一旦页面被篡改,对比响应内容不一致,就对响应内容进行替换,换回原来记录的内容 2.类似防篡改软件的功能,在服务器上写个脚本,实时监控 web 应用所在路径中所有的文件,一旦文件的 md5 发生改变,就进行恢复 |
57
mandex 2019-01-11 10:33:32 +08:00
毕业论文千万不要为了高大上选自己不熟悉的题目.
不多说了,都是血泪教训 |
60
wsstest 2019-01-11 10:48:48 +08:00
@tail2 #58 肯定第二个,直接在服务器跑个脚本,
for 文件 in 路径: 记录每个文件的具体路径和 md5,存进 dict 里,每个文件做一个备份 每隔一段时间循环一次,然后和已有的对比,不一样的就告警,并用备份替换 同时监控是否有文件被删除或新增,有的话进行恢复 /删除 |
62
wsstest 2019-01-11 10:55:09 +08:00
@tail2 #61 代码量……请自行学习《如何写出别人无法维护的代码》,里面的各种套路用一用,保证代码量渐长,而且别人还看不出来你在划水
|
64
holajamc 2019-01-11 11:21:53 +08:00
|
65
Jimrussell 2019-01-11 11:29:53 +08:00
infoguard,谷歌一下,国内国外一票名字里挂这个单词基本都是防篡改的产品
|
67
ljpCN 2019-01-11 11:48:45 +08:00 via Android
直接 Google scholar 搜索,科研的第一步是调研。PS: 也许本科毕设找一篇英文论文实现一下,根据自己的理解写成中文即可(
|
68
tail2 OP @Jimrussell 有产品没有源代码也看不会呀😭
|
69
davin 2019-01-11 13:20:36 +08:00
想到了某市地铁 Wi-Fi 网络下给 App 里面注入 H 图事情,于是想到了内容安全策略 (CSP)
|
70
anyliz 2019-01-11 13:27:26 +08:00
有公司卖这样的产品
|
71
holajamc 2019-01-11 14:08:15 +08:00
@tail2 嗯我前司也有这个产品,大体上是用 chrome headless 模式获得所有资源加载的状况(存在本地,封装了 Git 当作数据库,之后用了那个库还有很多骚操作来判断 DOM 结构是否变化,以及变化是否合理
|
72
sun019 2019-01-11 15:06:55 +08:00
网页劫持 https 什么的
|
73
LokiSharp 2019-01-11 15:12:52 +08:00
做不到的,你永远无法阻止 F12
|
74
lzvezr 2019-01-11 15:52:56 +08:00 via Android
我这倒是有一个用来篡改的 TampermonkeyJS 脚本😒
https://raw.githubusercontent.com/lzghzr/TampermonkeyJS/master/iamgroot/iamgroot.user.js |
75
SummerWQM 2019-01-11 15:59:13 +08:00
中间人 劫持
|
76
phperstar 2019-01-11 16:02:11 +08:00
http://blog.51cto.com/patrick0715/1812193 之前很多 cms 客户,我们是这么来处理的
|
77
5200 2019-01-11 17:21:25 +08:00
防止中间劫持的用 HTTPS,对于审核元素这种修改,之前好像看过一种别人的网站,只要打开 F12 控制台,就一直循环 debug 调试,自动断点,超过几次直接被拉黑了,应该能防止一部分人了吧。
|
78
bany 2019-01-11 17:52:31 +08:00
刚好有朋友是做这块
|
79
libook 2019-01-11 17:55:50 +08:00
可以分析一下用户输入一个网址到网页完全展示完毕中间都经过了哪些过程,然后再一个个分析每个过程可能有什么手段篡改网页,以及如何而应对。
之前面试考过别人。 |
80
tail2 OP 谢谢大家啦, 我就不一一回复啦, 任重而道远啊。。。
|
81
tail2 OP @zerozerone 服务端篡改, 就是对文件或文件夹的修改增加删除都进行防篡改嘛?
|