V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kong0bbs
V2EX  ›  职场话题

如何拒绝高危需求又不得罪人?

  •  
  •   kong0bbs · 5 天前 · 10753 次点击

    CEO 发现到企业微信上发任意 http url 能够以卡片的形式显示。 卡片会展示该 url 的 icon 、title 、description 、keywords 几个信息。 CEO 觉得这个功能很棒,想在公司自研 IM 上也达到类似效果。

    自研 IM 挂在我的直属 TL 名下。 CEO 将想法丢在公司大群里,说企业微信的功能很方便,问能不能做。 TL 马上答应下来,他跟 CEO 差了几级,平时根本说不上话。

    TL 在找人开发时卡住了,没人愿意接这个需求。 原因是这需求要爬任意 url ,有风险,可能不合规。 TL 问了法务,法务给的答复也模棱两可,法务让技术测判断。 但是 TL 已经答应了 CEO ,再反悔,会留下不良印象。 TL 在公司表现不错,也很年轻,不希望在 CEO 面前丢分。

    在实在找不到人的情况下,TL 找到我,希望我能接。 但我也不想碰这个需求,但我跟他共事 7 年了,拉不下脸面。 但他以私人身份求我,甚至承诺把团队顶格绩效给我。 我还是想拒绝,但又怕得罪人,应该如何拒绝?

    类似案例: 有家公司爬深圳市 ZF 网站上的公开数据。 但程序有 bug ,出现了死循环,导致以近 100qps 发请求。 最终把 ZF 网站打挂了,事情发生在周末,ZF 人员在休假,无人恢复,挂了一周末。 引发了很多市民的投诉,最终,技术总监和程序员都进去了。

    159 条回复    2024-06-29 12:59:50 +08:00
    1  2  
    lasuar
        101
    lasuar  
       4 天前
    单纯功能来说,算不算高危。bug 导致高并发请求 url ?这是程序员自己的问题(并且 low ),这 bug 是挺严重的,你要是怂也可以不接。

    其次,功能上来说这不算爬虫,因为只是读取基本信息,与访问网站无异,也只会访问一次。还可以增加一个逻辑,不读取 gov 网站。
    dyc12389
        102
    dyc12389  
       4 天前
    笑死了,可能就十几行代码的问题,op 搞得这么费事

    另外 GET 请求也会跨域吗?
    lzz1993
        103
    lzz1993  
       4 天前
    @ETCartman #27 哈哈哈哈太 6 了
    x66
        104
    x66  
       4 天前   ❤️ 2
    为什么帖子里会有人认为 GET 请求就没有跨域的问题?
    我的理解 GET 请求只有在通过 HTML 加载静态资源的时候才不会有跨域限制啊。
    但是楼主这个需求在 web 端肯定是要通过 XMLHttpRequest 或 Fetch API 来发起的 AJAX 请求获取数据啊,遵循同源策略, 这样请求必然会触发浏览器的跨域限制啊。
    即便是 GET 属于简单请求,浏览器也会检查 response header 中的 Access-Control-Allow-Origin 和在 XMLHttpRequest.upload 对象属性上有没有注册任何事件监听器,但是这里的需求肯定是无法满足这两个限制的

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS

    @xiaochocking @supuwoerc
    ColdBird
        105
    ColdBird  
       4 天前
    og 有啥风险?
    ssgooglg
        106
    ssgooglg  
       4 天前
    钉钉也有这个功能 发任意 url 时会展示网页信息,不违法吧
    ColdBird
        107
    ColdBird  
       4 天前
    @kong0bbs 跟跨域鸡毛关系,被研发忽悠了吧,就一个 get 请求拿 html 数据解析 og 信息就得了,网上随便找类似的代码。
    qq240316
        108
    qq240316  
       4 天前
    感觉你说的最后爬虫的是这个文章描述的内容
    https://mp.weixin.qq.com/s/asHnST4z-3SzbHOmmj0-lw
    hellodigua
        109
    hellodigua  
       4 天前
    @me1onsoda 怎么可能是前端工作,前端爬取的时候会遇到跨域问题的,像这类功能大部分厂通用的解决方案还是后端提供一个接口,后端起一个爬虫服务自己去爬,同时缓存网站基本信息
    firya
        110
    firya  
       4 天前
    既然是 im ,那后端干活就完了,消息是链接 ,后端请求链接拿到 html 里面的数据转成卡片需要的内容,前端直接展示
    zkqiang
        111
    zkqiang  
       4 天前
    这个不就是 Open Graph 吗... 甚至有规范让你来获取 web 定义的信息

    客户端调服务端接口去转发获取就行了,又不用频繁请求,遵循 robots.txt ,再从网上找一份白名单只请求白名单里的

    这要算高危,那很多服务商早进去了。。
    zkqiang
        112
    zkqiang  
       4 天前
    The Open Graph protocol: https://ogp.me/
    zkqiang
        113
    zkqiang  
       4 天前
    如果这算高危,那在国内做 IM 产品本身不是更高危,有用户发点违法的东西,你们公司直接倒闭
    4196
        114
    4196  
       4 天前
    @x66 确实。通过 JS 发起请求不管是 XHR 还是 Fetch 都需要通过跨域检测才行
    JoeDH
        115
    JoeDH  
       4 天前
    这种什么 url icon 都是公开的数据吧,发 IM 上发 url 时实时去请求解析就好了,不预先爬取数据并留存
    你担心 zf 网站危险,那就过滤掉就好了
    可以先做出来 60-70 分的成果,后续需要优化再优化(可能也就是 CEO 临时起意,过段时间就不感兴趣了)
    ivvei
        116
    ivvei  
       4 天前
    @kong0bbs 为什么要搞那么复杂并且危险
    Vindroid
        117
    Vindroid  
       4 天前
    合规问题不大? skype 也有类似这种功能,叫链接预览,不算恶意爬虫。用户协议申明下,爬网页时遇到禁止爬虫的主动放弃就行了
    wuyiccc
        118
    wuyiccc  
       4 天前
    用户发消息的时候就把消息转化成带图片的消息,接收方用户直接接受的就是转换之后带图片的消息,接收方就不用再次解析消息了。这样应该就不会产生多次请求导致打崩对方网站的问题了吧
    HUZHUANGZHUANG
        119
    HUZHUANGZHUANG  
       4 天前
    你的 TL 和你之间的对话你都要有录音.不然这事就是费力不讨好.成功了你真以为他会兑现对你的承诺?

    失败了你就是背锅侠

    要做好一荣俱荣,一损俱损的打算. 他画饼只是为了管理你的预期罢了. 同事同事,共同做事而已
    victorc
        120
    victorc  
       4 天前
    这功能不属于爬虫,无风险

    TL 可以直接指派,不愿做的开掉
    iyaozhen
        121
    iyaozhen  
       4 天前
    额 你不要来不来就如履薄冰,这个算不上高危需求

    前面有人说了,有标准的 open graph 如果对应页面有,就直接使用
    还有就是客户端爬取和服务端爬取的问题 前面大家都有说
    一方面是合规(比如服务端你不能带用户翻墙,还得小心内网穿透问题),另一方面是 客户端可以携带用户身份(跨越这些技术问题自己解决
    只是说有点麻烦 倒不至于有什么高危风险

    再者可以参考现在各大 AI 发链接总结,这种一般是集成第三方爬取网站,也可以规避风险 类似: https://www.webpilot.ai/post-gpts/#
    ytmsdy
        122
    ytmsdy  
       4 天前
    有个毛风险,别自己给自己加戏。
    就抓一下 meta 信息,而且都公开的页面,实在不行,在客户端里面请求,别用服务器发送请求。
    wupher
        123
    wupher  
       4 天前
    确实就是获取一下页面的 meta 信息就好。

    如果漂亮点,对于 og 实现不好的网站,还可以使用 llm 生成总结。

    你甚至可以把这个需求描述给 gpt 让它给你生成代码。
    sun019
        124
    sun019  
       4 天前
    参考 115 楼的说吧,别一下想的太完美,先做个能用的版本上,后续有问题再优化。都是你们内部的 IM ,有啥哦。
    GoNtte
        125
    GoNtte  
       4 天前
    这个没啥风险的。让客户端给个方法,本地只请求一次,请求结果缓存下来
    dnL
        126
    dnL  
       4 天前
    @Pastsong 哥们儿没上过班吗?
    TL 不让 CEO 满意,还留 TL 干啥
    DLOG
        127
    DLOG  
       4 天前
    大部分分享的链接,是支持跨越请求的。
    kemistep
        128
    kemistep  
       4 天前
    前端起一个 nodejs 接口,然后配置同源策略,用 nodejs 实现 meta 信息获取 ,都要多一层转发的
    liqingyou2093
        129
    liqingyou2093  
       4 天前
    一个链接 一条记录 有个鸡儿风险
    Limius
        130
    Limius  
       4 天前
    @ETCartman #27 OP 赶紧来看看这个做法,直接出院!
    fredweili
        131
    fredweili  
       4 天前
    先做 MVP 技术验证,这时候就只支持内网,可以了下一阶段再说别的,那时候也许老大就忘了
    MaxwellX
        132
    MaxwellX  
       4 天前
    我测试了一下,企业微信对于政府端好像并没有解析
    MaxwellX
        133
    MaxwellX  
       4 天前
    @MaxwellX 不对,应该是有的没解析出来的就不显示了
    solome
        134
    solome  
       4 天前
    这个需求并不复杂。但不是纯前端工作,抓取 icon 、title 、description 、keywords 这些需要服务端做(比如同个域名每天只需要请求\爬虫一次即可)。

    另外,抓取 icon 、title 、description 、keywords 等信息并不违法。
    solome
        135
    solome  
       4 天前
    @me1onsoda 要有缓存(一般是 1h 或 1 天只请求、爬虫一次,将解析结果放到内存或数据库中)。
    TORYOI
        136
    TORYOI  
       4 天前
    我真讨厌聊天窗口对 url 做处理,只想要纯纯的文本。
    sazima
        137
    sazima  
       4 天前
    企微钉钉都没问题, 你们也可以做。 实在不放心可以在设置项里面加个开关, 给点隐私风险提示, 让用户自己打开
    iseki
        138
    iseki  
       4 天前
    这个东西用不用看一眼 robots.txt 啊
    xuanbg
        139
    xuanbg  
       4 天前
    哈哈哈,你以为微信这个功能是靠爬数据来的么???
    xinchao
        140
    xinchao  
       4 天前
    对域名做个缓存爬不崩的,至于违法,就爬个 tdk 能违法到哪里去,微信钉钉不都这么做吗?
    zhuichen
        141
    zhuichen  
       4 天前
    我感觉你可以分两期进行,第一期先解析内部系统,以及不太敏感的网站先,先实现。第二期再考虑更大范围,至于合规问题,把问题往上抛就行,你把程序搞定就完了。另外可以看下企业微信怎么搞的,如果有合规问题,他们应该也不行
    xiaoxing0086
        142
    xiaoxing0086  
       4 天前
    其实也没那么高危

    1.先看目标网站是否有 robots.txt ,根据 robots.txt 规则判定是否确定进行抓取。
    2.一般每个 url 就抓一次就行了,也没不会轮训去抓的场景,这样 bug 概率太小了
    Tezos
        143
    Tezos  
       4 天前
    太菜了吧 连 OG 标签都不知道
    ETiV
        144
    ETiV  
       4 天前 via iPhone
    我悟了 LZ 已经把自己想要的写在标题里了(不想做但不得罪人),而我们这帮人还在给他出主意如何实现……
    rimutuyuan
        145
    rimutuyuan  
       4 天前
    一天能发多少 url 啊
    kasusa
        146
    kasusa  
       4 天前
    很简单 屏蔽掉 gov.cn 其他随便爬
    kasusa
        147
    kasusa  
       4 天前
    然后比如群里面 几千人大群,可以先客户端请求,一个客户端有了 icon 和描述,上传到群的服务器,其他人看消息慢的,从服务器拿数据,就不会对三方网站大并发访问了
    aeron
        148
    aeron  
       4 天前
    这玩意算不上违法吧,也就发的时候根据地址获取一下
    kasusa
        149
    kasusa  
       4 天前
    然后最常见的国内网站,直接长期缓存,根本不用爬
    anzu
        150
    anzu  
       4 天前   ❤️ 1
    我接过这个需求,确实不是很想做。涉及程序风险和内容风险。
    1. 程序风险。需要注意爬虫服务器 IP 暴露风险,容易被针对性攻击,需要单独部署。解析程序也有漏洞风险,比如解析频次、解析内容溢出等错误导致解析程序崩溃或泄露敏感信息。

    2. 内容风险。请注意 og 内容可以和实际看到的网页内容完全不一致,可以将违法信息藏于其中。那么问题来了,如果正好有这样一个违法页面,用户发的网页内容是完全正常的,而解析出来 og 信息是违法的,你猜猜是谁的责任? og 内容需要过滤,og 图片也需要过滤。og 信息要不要缓存?缓存策略如何安排?还有因缓存而导致的其它问题等等。

    需要考虑的太多了。当然,对于大部分草台班子来说不需要考虑这么多。
    chempotato
        151
    chempotato  
       3 天前 via Android
    发链接的客户端请求就好了 不管几个人的群
    jeesk
        152
    jeesk  
       3 天前
    这种根本不是技术问题, 是法律风险的问题。 分享连接和粘贴链接是 2 个东西。
    客户端粘贴一个链接在群里, 如果真的爬了, 出现的风险谁来担责任?
    tyrantZhao
        153
    tyrantZhao  
       3 天前
    这玩意不是前端的工作吗?
    cander0815
        154
    cander0815  
       3 天前
    针对这个需求,我的想法是。
    1. 发出链接这个消息的那个客户端,先把链接发出去,然后每条消息都会有一个 id 吧,记录下这个 id
    2. 然后发这个消息的客户端去请求这个网站的基本信息。请求到了就把基础数据在发一个消息。带上刚刚那个链接的 id 。
    3. 然后别的客户端显示的时候,根据 id 找到刚刚那个链接,然后把网站的数据和链接消息气泡合并成一个卡片类型展示。
    应该可以吧
    cander0815
        155
    cander0815  
       3 天前
    @ETiV 好像是的。 那个怎么删除回复?🤔
    mistygg
        156
    mistygg  
       3 天前
    就算是 webview 套壳,也可以用 js 跟原生交互的,让原生去做网络请求,把结果给到 web view ,没有跨域的问题
    yov123456
        157
    yov123456  
       3 天前
    为啥要 Puppeteer 无头模式跑爬虫逻辑?直接 curl 解析 html tag 就好了。curl 不到的就不显示,也有很多提供这种服务端第三方服务商。
    qpily
        158
    qpily  
       3 天前
    CEO 知道这么做有概率会带来法律风险吗?无论是 TL 还是法务还是你,在立新项目是出现任何新情况,难道都不需要告知 CEO 有可能的法律风险? CEO 又不是技术专家,怎么可能完全明白新 idea 可能的风险
    “但是 TL 已经答应了 CEO ,再反悔,会留下不良印象。TL 在公司表现不错,也很年轻,不希望在 CEO 面前丢分。”这 CEO 要是知道这个 TL 为了扒分,不惜扛着风险也要上,怕不是分都要扣到地底了
    guangfa
        159
    guangfa  
       2 天前
    url 风险问题可以接入第三方的内容安全检测,找找各种云服务商,都有类似的功能,把 url 传给服务,服务会告诉你相关的风险,黄赌毒标识等,也会告诉你备案信息。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2753 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:01 · PVG 22:01 · LAX 07:01 · JFK 10:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.