老哥们, html 标签过滤了=号&和%有没有可以直接写标签属性的方法?

2022-02-15 12:11:50 +08:00
 cyrbuzz

例:<a href="xyz"></a>会过滤为<a href"xyz"></a>

不用 js 的情况下还有办法能让 href 正常生效吗?

2320 次点击
所在节点    程序员
27 条回复
Huyoumnonos
2022-02-15 16:01:24 +08:00
啥意思😳,没读懂
cyrbuzz
2022-02-15 16:18:44 +08:00
@Huyoumnonos

类似 XSS ,过滤了部分字符。
gadfly3173
2022-02-15 17:11:40 +08:00
@cyrbuzz #2 你这是 AB 问题了吧 不如把完整的情况写出来。。。
shew2356
2022-02-15 17:20:19 +08:00
=号过滤了,又不用 js ,那没办法~
shew2356
2022-02-15 17:22:23 +08:00
@Huyoumnonos 楼主的意思是,可能用正则手段过滤了 html 中的 =,&,%等符号,然后想 a 链接正常生效,又不用 js 在过滤之后再渲染最佳~
vanton
2022-02-15 17:23:29 +08:00
禁用了 = 号?
不用 js 那就没啥可能了。
Zzm1203
2022-02-15 17:24:19 +08:00
你这个是怎么过滤的?正则替换吗?如果不用 js 好像没什么办法,并且您的表述确实不知道这到底是个什么,前提条件和最终效果都是什么样的,在什么样的一个执行机制下,还有为什么不能用 js 去做
yinjunjian0
2022-02-15 17:33:22 +08:00
过滤也是自己做的编译过滤的吧
设置范围过滤就好了
cyrbuzz
2022-02-15 17:58:53 +08:00
@gadfly3173
@Zzm1203
@yinjunjian0

emmm...例子是完整情况。

我期望通过输入`<a href="123">123</a>`的方式让 a 标签生效,但现在我输入的`<a href="123">123</a>`会被后端过滤为`<a href"123">123</a>`,前端拿到后不会做任何过滤直接输出。后端如何写的替换并不清楚= =,无法控制过滤规则。

不能用 JS 是一个限制条件。

@shew2356

完全就是这个意思~。
cyrbuzz
2022-02-15 17:59:17 +08:00
@vanton

大佬,不在挣扎一下吗= =。
zcf0508
2022-02-15 18:16:10 +08:00
@cyrbuzz 后端的锅让他们自己处理
maplerecall
2022-02-15 18:18:02 +08:00
没办法。

如果你是开发者,这种不合理的过滤规则找后端改,因为即使能用 JS 处理也不合理,反而会导致容易被 XSS 。
如果你是使用者,也许自定义标签属性这种行为本身就属于不被允许的,有需求只能找服务提供方去改。
mxT52CRuqR6o5
2022-02-15 18:20:26 +08:00
不过滤百分之一万会有 xss 风险
href 里写"javascript:XXXX"就能执行任意 js 代码
Xusually
2022-02-15 18:21:37 +08:00
这在我看来是“OP 在想办法绕过过滤去做 XSS”的问题
cyrbuzz
2022-02-15 18:51:14 +08:00
@Xusually

是= =,只是并不为了攻击。
cyrbuzz
2022-02-15 18:55:44 +08:00
@mxT52CRuqR6o5

是的,还是有 XSS 风险,只是我的目的不是攻击,也没有权限改其他人的网站。
mxT52CRuqR6o5
2022-02-15 19:11:50 +08:00
@cyrbuzz 你不是恶意的,不代表其他人都不是恶意的啊,各种安全策略其实就是在防范可能出现的满怀恶意的人
jin5354
2022-02-15 20:24:36 +08:00
那你加个中间层,维护个 map 映射表,提交前自己把 =,% 这种符号替换成 __$0 ,__$1 之类的,获取时自己再替换回来。
learningman
2022-02-15 22:20:19 +08:00
ctf 刷题呢,盲猜有别的字符可以转成=号,sql 构造试试
cyrbuzz
2022-02-16 10:10:41 +08:00
@jin5354

这样没有达到本来的目的,这样只对我自己有效,这样搞就变成一个只能打自己的反射 XSS 了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX