NodeJS 解析 GET 请求 url 字符串

本文讨论了NodeJS中使用`url.parse`方法存在的安全问题,因其不符合URL标准而被弃用。推荐使用`URL`类来正确解析GET请求的URL字符串。文章提供了一个简单的代码示例,并推荐了一个名为Body-Data的开源库,用于方便地获取POST和GET请求的参数。
摘要由CSDN通过智能技术生成

前言

原文: https://blog.imlete.cn/article/Parse-get-url-string.html

封装开源地址: Body-Data

当你使用querystring.parse()或者是url.parse()时会得到一个警告@deprecated — since v11.0.0 - Use the WHATWG URL API.

由于 url.parse() 方法使用一种宽松的非标准算法来解析网址字符串,因此可能会引入安全问题
具体来说,已经确定了主机名欺骗以及用户名和密码处理不当的问题

url.parse()v11.0.0开始被打上@deprecated注解(也不知道叫做注解合不合理,可能是 java 写多了吧),在v16.0.0后被完全移除,同时还一并移除的有url.format() url.resolve()

/**
 * 在 querystring 的 TS 源码开头已经被打上了 @deprecated 具体说明时候被完全移除目前还不得而知
 * 部分注释已被我被删除
 * @deprecated Legacy
 * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/querystring.js)
 */
declare module "querystring" {
   }
declare module "url" {
   
  /**
   * 在 url 的 TS 源码里 parse() 已经被打上了 @deprecated 从v11.0.0开始,到v16.0.0被移除
   * 部分注释已被我被删除
   * @since v0.1.25
   * @deprecated Legacy: Use the WHATWG URL API instead.
   * @param urlString The URL string to parse.
   * 部分注释已被我被删除
   */
  function parse(urlString: string): UrlWithStringQuery;
}

为什么?

这是因为 nodejs 的url.parse方法采用的传统的urlObject,不符合URL 标准,因此被弃用

WHATWG(Web Hypertext Application Technology Working GroupWeb 超文本应用程序技术工作组)

使用 URL

使用 URL 类对 url 进行操作,详细文档见(可将域名后的 org 改为 cn 看中文文档)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值