NodeJS 拒绝设置不安全的头 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HanningWu
V2EX    Node.js

NodeJS 拒绝设置不安全的头

  •  
  •   HanningWu 2017-05-16 11:41:57 +08:00 3695 次点击
    这是一个创建于 3146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想要发送一个 GET 请求,利用

    request.setRequestHeader("Referer","https://www.github.com");

    来设置 Referer 的值,结果 node 之后请求失败,报错

    Refused to set unsafe header "Referer"

    说是浏览器不允许用户手动设置敏感的 Http header,比如 cookie、host、referer 之类的


    利用 PhantomJS 可通过令 web-security=no 来设置此类敏感 header 并成功发送请求,不知道 NodeJS 中有没有可能进行类似的设置。

    由于我在尝试用 node-webkit 写一个带图形界面的程序,所以不打算使用 PhantomJS,必须让 js 能在 NodeJS 下运行成功才行。

    所以求问各位 V 友,在 NodeJS 中有没有设置敏感 header 的方法?

    10 条回复    2017-05-17 17:59:52 +08:00
    Trim21
        1
    Trim21  
       2017-05-16 13:03:56 +08:00   1
    nodejs 好像不管这个...
    HanningWu
        2
    HanningWu  
    OP
       2017-05-16 13:13:05 +08:00
    @Trim21
    nodejs 不管 http,只管 https 的 url
    phantomjs 两者都可以绕过
    Trim21
        3
    Trim21  
       2017-05-16 13:15:45 +08:00
    @HanningWu 我把 http://httpbin 改成 https://httpbin 仍然可以运行
    Trim21
        4
    Trim21  
       2017-05-16 13:22:50 +08:00   1
    你的 request 应该是一个 XMLHttpRequest 对象吧...nodejs 是不提供这个的,只提供 http 标准库....
    HanningWu
        5
    HanningWu  
    OP
       2017-05-16 13:23:44 +08:00
    @Trim21 原来如此,那我放弃 XHR 了,还是按 http 标准库来操作。多谢!
    XiaoxiaoPu
        6
    XiaoxiaoPu  
       2017-05-16 13:25:21 +08:00   1
    @HanningWu 对那些 unsafe header 的限制是浏览器做的,nodejs 和浏览器是不同的运行环境,nodejs 没有这些限制。
    jishu541464750
        7
    jishu541464750  
       2017-05-16 14:12:23 +08:00
    楼上+1 和 nodejs 无关,是浏览器限制的,同求解决方案
    denghongcai
        8
    denghongcai  
       2017-05-16 18:25:16 +08:00
    你用了 node-webkit 的浏览器 API 会受限制

    碰到限制就用 node 的 API 就好了嘛
    HanningWu
        9
    HanningWu  
    OP
       2017-05-17 11:48:01 +08:00
    @Trim21 请问图中利用 request module 的 get 请求是同步的还是异步的?
    Trim21
        10
    Trim21  
       2017-05-17 17:59:52 +08:00
    @HanningWu 异步的。。倒数三行是个回调函数
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4317 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 04:04 PVG 12:04 LAX 20:04 JFK 23:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86