小红书这个 bug 还真是有点搞笑呢。

刚刚在小红书上冲浪的时候,发现了这样一条内容:

图片

我开始以为是一个钓鱼贴,骗评论的。

结果发现评论反映确实是发不出来。

于是我也试了一下:

图片

当我在小红书的评论区输入 time.sleep(1) 之后,弹窗提示“似乎已断开与互联网的连接”。

通过浏览器观察,可以看到后端返回的 405 状态码:

图片

然后我尝试着在搜索框里面搜了一下:

图片

这波就更厉害了,直接就是弹出“网络断开”的错误页面。

你就说这是不是 BUG 吧?

什么,你说这是 future?

我又不是憨憨,你为什么要骗我,哪怕你说是彩蛋呢?

都稍微合理一点。

图片

针对这个现象,小红书的小姐妹们在评论区讨论的非常热闹,你看这个评论数就知道了:

图片

按照这个逻辑推理,我试着输入了一下这个玩意:

《script》alert("xss")《script/》
//后面会解释为什么用中文

图片

果然,出现了一模一样的问题。

我作为程序员,针对这个现象当然能大概联想到“注入攻击”这样的关键词。

毕竟 time.sleep(1) 和 《script》alert("xss")《script/》 这类评论是有代码含义的。

但是我理解不了的是为什么小红书会抛出一个“网络连接异常”给到用户。

这样不是更加具有迷惑性吗?

歪师傅当年接了一个需求也是类似的,防止用户在输入框进行 XSS 攻击。

主要就是对所有用户输入进行过滤,特别是当用户的输入被包含在 HTML、JavaScript、CSS 或 URL 中时,按照正常逻辑来说,是要过滤掉或转义掉潜在的危险字符,比如 <、>、&、" 和 ' 这些玩意。

但是我当时就是直接一个大力出奇迹,我也懒得过滤,比如用户输入中包含一些 html 标签的时候,我就直接弹出一个非法输入。

我知道这个做法很糙,但是反正也是内部人员使用的页面,糙点也就糙点了。当他们拿着问题来找我的时候,我就告诉他:这是一个历史悠久的技术问题,解决起来比较棘手,你尽量使用中文符号,就好使了。

但当这个问题放在小红书,这个面向 C 端用户的 APP 来说,在提示上就值得好好琢磨了。

首先,我个人觉得这类评论直接在前端拦截到,是合理的。

因为正常用户按理来说是不会输入这样的评论的,输入这样评论的用户,一定是有某种意图。

比如前面大量的用户在评论区输入这样的评论,是因为有这样的引导,然后她们出于一种不相信或者猎奇的心态,觉得很有趣,第一次遇到这种情况,才在评论区输入了这样的评论。

所以,能偶然间触发这个 bug 的用户应该非常之少,没有必要为了这么一小部分用户,费心费力的去想着怎么把这部分“奇怪”的评论落下来。

但真的遇到了这样的输入,直接提示一个“非法输入”我觉得都比提示“网络异常”合理很多。

一般来说,能输入这个评论的用户,心里也明白这是一个“非法输入”。

当然了,这都是自己的看法,如果你有更友好的实现方式,也可以在评论区交流一下。

我学习学习。

评论

在这个小红书下面有一个热评是这样的:

图片

诶,不是说好打不出来吗,这个评论又是怎么回事呢?

你想想,你在写代码的过程中,有没有被 l(小写的 L),(I)大写的 i,数字 1 搞过?

甚至还有人教我的“丨”,这种存粹恶搞的玩意:

图片

l,I,1,丨 。

这四个哥们放在一起,在有的平台上面真的是,“安能辨我是雌雄”。

所以,上面这个热评中 sleep 中的 l 其实是大写的 I:

图片

这两个字母在小红书里面的差异,真是像素级别的。

我给你演示一下,第一个 l 是小写的 L,第二个 I 是大写的 i:

图片

肉眼看真的看不出来啥区别。

但是放大到像素级别的时候,你会发现它们有一个像素的差异:

图片

真的就一个像素。

图片

还有比如这个评论,他输入了中文括号,成功了:

图片

我从这个评论中看到了一点“信息茧房”的味道。

作为一个程序员,只要看到别人说:“你使用的是中文的括号”,立马就能反应过来。

但是对于非程序员来说,他一时间很难理解这其中的差异。

这就是一种信息茧房。

同时作者还提示在“time.sleep(1)”加入其他内容就能正常显示:

图片

比如他第一句解释中就包含“time.sleep(1)”,就能正常发出来。

于是,我想到了一个只有程序员能懂,且能迷惑到程序员的一个输入:

//time.sleep(1)

图片

在这个场景中,你会不会一瞬间把 // 理解为了注释?

大脑真的就很神奇,它会自动帮我们解析很多信息。

这也让我想起了以前在网上看到的一个段子。

有个资源包的解压密码是“鲁迅的本名”。大多数人都会输入“周树人”,提示错误,多次尝试后才反应过来,解压密码原来就是“鲁迅的本名”这几个字。

不知道这个问题的答案或者母语非中文者就不会被困扰,因为缺乏相关知识,他们的大脑不会自动解析这些信息。

确实有点意思,就当是一个让人蛋疼的冷知识吧。

最后,来一个梗图:

图片


就在我写完文章,准备用 mdnice 转公众号格式的时候,也遇到了这样的问题:

图片

图片

直接从这里开始截断了...

好吧,也是一种处理方式。

所以,我这个地方用的是中文符号。

图片

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值