首页 > 其他分享 >遇到403 Forbidden ,服务器端查询后结果是http get查询字符串中包含非法字符

遇到403 Forbidden ,服务器端查询后结果是http get查询字符串中包含非法字符

时间:2024-08-19 13:26:47浏览次数:12  
标签:字符 http 服务器端 kalman03 非法 查询 parameter

原文链接:https://blog.csdn.net/mm_hello11/article/details/84261672

 

报错解释:

HTTP GET请求通过查询字符串(即URL中"?"后面的部分)传递参数。如果查询字符串包含非法字符,服务器可能会拒绝请求并返回错误,因为这些非法字符可能会破坏URL的格式或者服务器的安全性。

非法字符通常指的是除字母、数字和某些预定义的字符(如-._~!$&'()*+,;=)以外的所有字符。

HTTP标准的两种请求方式:Post和Get,关于这两种请求方式的区别相关资料云集,这里不做阐述。然而,你是否注意到:
我们通过get方式从浏览器的地址栏传递数据给服务器,当参数的值中含有某些特殊转义字符的时候,没经过些许处理将得不到预期的结果。

例如:
当我们的请求的url为:
http: // localhost:8080/index.jsp?parameter=kalman03#kalman#1
或许你预期在服务器端获得的parameter的结果为kalman03#kalman#1,错!!!实际上得到parameter的值为kalman03。
这究竟是为什么呢?
原因:
parameter的值含有特殊字符#,浏览器自动截断#字符和其后面的值,这样得到的值就为kalman03。
推广:
当参数值中含有特殊字符 ?!=()#%& 的时候,获得的值同样也会出现与预期结果不一致的情况。
解决方案:
方法1:通过post方式传递数据;
方法2:对参数进行一次编码parameter=escape(parameter);

第一种解决方案不解释也能明白,现在解释下第二种方法的处理:
JavaScript escape() 函数的功能是把其中某些字符替换成了十六进制的转义序列。该方法不会对ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换

标签:字符,http,服务器端,kalman03,非法,查询,parameter
From: https://www.cnblogs.com/Dongmy/p/18367132

相关文章

  • 通过python脚本查询自己阿里云账号里的某个域名的A记录解析情况,以及测拨,用于排查未使
    安装sdkpipinstallaliyun-python-sdk-alidns代码全文importjsonimportrequestsfromaliyunsdkcore.clientimportAcsClientfromaliyunsdkalidns.request.v20150109importDescribeDomainRecordsRequest#替换为你的阿里云AccessKeyID和AccessKeySecret......
  • Node.js使用Axios发起http调用
    axios功能比较多,除了基本get/post调用之外,还支持多个接口并发调用、全局配置、拦截器等功能。笔者这里只介绍简单使用方法。安装npminstallaxiosGET请求:constaxios=require('axios');axios.get('http://api.qingyunke.com/api.php',{params:{key:'fre......
  • HttpClient、IHttpClientFactory、HttpClientHandler 和 HttpMessageHandler 的生命周
    在C#中,HttpClient、IHttpClientFactory、HttpClientHandler和HttpMessageHandler的生命周期密切相关,它们共同影响着网络请求的性能、资源管理和可靠性。以下是它们的生命周期分析:1.HttpClient的生命周期默认行为:HttpClient是线程安全的,设计为可以在应用程序的整个生命......
  • 在高并发和高负载场景下,优化 HttpClient
    在高并发和高负载场景下,优化HttpClient的使用至关重要,因为不当的资源管理可能导致性能瓶颈、资源枯竭(如端口耗尽)、和请求延迟等问题。以下是一些优化建议:1.使用IHttpClientFactory管理HttpClient实例复用HttpMessageHandler:通过IHttpClientFactory创建HttpClient实......
  • 在 C# 中处理 HttpClient 实例时,使用单例模式和 IHttpClientFactory,DNS缓存问题
    在C#中处理HttpClient实例时,使用单例模式和IHttpClientFactory都有各自的优缺点,尤其是在高并发情况下。以下是它们的对比及性能考虑:1.单例模式使用HttpClient优势:减少资源消耗:HttpClient是设计为复用的类,创建一个单例可以避免频繁创建和销毁HttpClient实例,从而减......
  • 【图数据库系列】Cypher查询语句:常用语法指南
    ......
  • 使用SSMS连接和查询 SQL Server 实例
    简介SQLServerManagementStudio是用于管理SQLServer基础架构的集成环境。ManagementStudio提供用于配置、监视和管理SQLServer实例的工具。此外,它还提供了用于部署、监视和升级数据层组件(如应用程序使用的数据库和数据仓库)的工具以生成查询和脚本。 官方使用教程:https......
  • HTTP Error 503. The service is unavailable.
    第一次遇见这个问题,装了IIS重写模块导致的。查了资料才知道,是URLRewrite的版本和2012系统的lIS不兼容导致。最新的URLRewrite的版本是2018年9月20日的7.1.1993.2351版,就是这个版本产生问题,不能用在2012上,在它前面的一个版本是2017年6月7日的7.1.1980.0版,这个......
  • 数据库技术核心:查询优化(PostgreSQL)
    文章目录案例1:使用合适的索引优化查询案例2:优化多表复杂联接查询案例3:优化多条件查询案例4:消除低效的联接查询案例5:包含多个联接和聚合的复杂查询案例6:消除低效的子查询案例7:复杂窗口函数和CTE(公用表表达式)案例8:适当的表结构设计与分区表优化案例9:使用物化视图......
  • 同一个ip:port上同时开启socks5和http代理服务器
    代码如下所示:packagemainimport( "bufio" "errors" "flag" "fmt" "io" "log" "net" "net/http" "strconv" "sync")funcmain(){ addr:=flag.String(&......