url特殊字符转义及解决方法
- URL特殊字符需转义
- 1、空格换成加号(+)
- 2、正斜杠(/)分隔目录和子目录
- 3、问号(?)分隔URL和查询
- 4、百分号(%)制定特殊字符
- 5、#号指定书签
- 6、&号分隔参数
转义字符的原因:
如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。例如
表单的action为list.jsf?act=go&state=5
则提交时通过request.getParameter可以分别取得act和state的值。
如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义
url转义字符原理:
将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
- URL特殊符号及对应的十六进制值编码:
- 1. + URL 中+号表示空格 %2B
- 2. 空格 URL中的空格可以用+号或者编码 %20
- 3. / 分隔目录和子目录 %2F
- 4. ? 分隔实际的 URL 和参数 %3F
- 5. % 指定特殊字符 %25
- 6. # 表示书签 %23
- 7. & URL 中指定的参数间的分隔符 %26
- 8. = URL 中指定参数的值 %3D
解决方法如下(以+号为例):
方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为“2B%”,这样参数传到服务器端时就能得到“+”了。
方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有“+”没有空格的情况。
例子:
- String a = reuqest.getParameter("clientStr").replace(' ','+');
如果客户端为clientStr=test+OK,那么a的值为test+OK;
方法三、修改服务器端,将获取参数的方法由reuqest.getParameter改为request.getQueryString().substring(0),然后对得到的字符串进行解析。
例子:
- String a =request.getQueryString().substring(0);
如果客户端为clientStr=test+OK,那么a的值为clientStr=test+OK,需要再解析一下,
a=a.substring(10);得到a的值为test+OK。
附:一个JS,用来转义URL中特殊字符的。
- function URLencode(sStr)
- {
- return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
- }
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/532231,如需转载请自行联系原作者
url特殊字符转义及解决方法相关推荐
- http中url特殊字符转义及解决方法
前言:使用的是http中的get请求,但是又不想明文给别人,加密之后数据就包含了"+"号 知识:提交的参数中有"&","+"等特殊符 ...
- url 特殊字符 传递参数解决方法
url 特殊字符 传递参数解决方法 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码. 十六进制值 1. + UR ...
- java url转义_url特殊字符转义及解决方法
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...
- shell url转义_url特殊字符转义及解决方法
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...
- html转义es,Js特殊字符转义之htmlEscape()方法
为了防止XSS攻击,常常需要将用户输入的特殊字符进行转义,原生js貌似还没有直接对其专业的方法,最近再读Js高级程序设计的时候刚好看到,碰巧项目中也刚好需要使用次方法,于是就之家搬来用了. 网上关于转 ...
- html url 空格转义字符,url特殊字符转义小知识
摘要 腾兴网为您分享:url特殊字符转义小知识,余额宝,学习帮,小牛,完美志愿等软件知识,以及joinme,hackertyperneo,疯子苹果,mse杀毒软件,心动表情包,巫师3优化补丁,酷娃,米 ...
- php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...
这篇文章主要介绍了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法,主要通过针对magic_quotes_gpc开启的情况下进行检查与判断转义来实现,需要的朋友可以参考下 本文实例讲述了 ...
- http url特殊字符转义
哪些字符需要编码 1.URL特殊字符转义,URL中一些字符的特殊含义,基本编码规则如下: 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定 ...
- 织梦 plus/download.php,织梦DedeCMS 5.7SP1 /plus/download.php url重定向漏洞的解决方法
最近使用scanv网站体检发现有DedeCMS 5.7SP1 /plus/download.php url重定向漏洞(如下图),对比官方网站最新下载包发现该漏洞未进行补丁,但官方自身网站已经补上了,而 ...
最新文章
- 201771010106东文财《面向对象程序设计(java)》实验12
- 数据结构 链表(一)
- 《计算机组成与体系结构:性能设计》读后小记 4、cache存储器
- 关于lvalue and rvalue
- 一维卷积神经网络_序列特征的处理方法之二:基于卷积神经网络方法
- Linux 目录栈及目录切换
- 服务器磁盘空间占用,大文件查找
- 【Flink】flink on yarn 并行度设置高导致任务失败
- Kafka : kafka重启报错 ZkClient allready closed
- Linux下实现多线程异步管道
- 华为服务器重装操作系统,华为服务器安装操作系统
- ubuntu配置IP并且生效
- 大数据分析师高级证书_有大数据分析师资格证书吗?
- iscsi btrfs 扩容操作
- Ubuntu14.04下nfs服务器的搭建
- Retrofit简单使用(小白都会了)
- 永恒之蓝漏洞ms17-010
- [深度学习]Part1 Python学习进阶Ch24图像处理OpenCV(24.1~24.13)——【DeepBlue学习笔记】
- oracle开源数据库审计,oracle数据库审计
- 实验操作:Squid代理服务器应用(传统代理透明代理)--------------------------------------就整吧
热门文章
- android自定义minitype,MiniType部类以及扩展名
- mysql分区有好处吗_mysql 分区有实用价值吗?
- tensorflow学习(5.实际图片的读取以及lenet-5的搭建)
- 【人脸表情识别】情绪识别相关会议、比赛汇总(2018-2020)
- 全球及中国6氯5氨基邻甲酚行业深度调研与运营潜力分析报告2022版
- 为何优秀的Java程序员如此难招?
- js实现返回顶部功能的解决方案
- PostgreSQL 数据库备份
- Codeforces Round #484 (Div. 2) A. Row
- JavaScript开发