HTML:阻止帖子表单的url编码
我有一个HTML表单,必须发布到一个URL。我希望表单发布一个名为DATA的变量,如下所示:HTML:阻止帖子表单的url编码,html,forms,encoding,url-encoding,Html,Forms,Encoding,Url Encoding,我有一个HTML表单,必须发布到一个URL。我希望表单发布一个名为DATA的变量,如下所示: DATA: somevar=someval&somevar2=someotherval 我做这件事有困难。默认情况下,表单对数据进行URL编码,结果是: DATA: somevar%3Dsomeval%26somevar2%3Dsomeotherval 将表单的enc类型更改为“文本/普通”会导致: DATA: somevar=someval SOMEVAR2: someotherval
DATA: somevar=someval&somevar2=someotherval
我做这件事有困难。默认情况下,表单对数据进行URL编码,结果是:
DATA: somevar%3Dsomeval%26somevar2%3Dsomeotherval
将表单的enc类型更改为“文本/普通”会导致:
DATA: somevar=someval
SOMEVAR2: someotherval
有没有什么方法可以让我的表单像上面那样发送数据呢?试试看
更新
如果您在php中使用表单提交,请尝试下面的函数进行解码
不,你不能做你想做的事。你可能不应该尝试。 事实上,您希望在名为data的变量中包含一些数据,这意味着您的POST有效负载(或GET查询字符串)如下所示
DATA=somevar%3Dsomeval%26somevar2%3Dsomeotherval
如果它是(如你所愿)像
这意味着:
数据的值为“somevar=someval”
somevar2的值为“someotherval”
这是因为每个变量的形式为variable_NAME=VALUE,它们之间用“&”分隔
在您最喜欢的浏览器调试器中自己检查这一点(我使用firebug和chrome内置的开发工具)。
所以,问题是:你为什么要这么做?知道帮助你实现目标会更容易
编辑:这个例子是错误的我不确定你写这篇文章的目的是什么,也不确定阻止文章表单的URL编码是否真的能解决你的问题 但实际上,阻止表单的URL编码是100%可能的,只需添加
enctype="text/plain"
属性到窗体
下面是一个没有enctype text/plain的请求示例,以及另一个有enctype text/plain的请求示例
LMint-PC droope # nc -kl 80
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 168
%7B%22JobTypeIdentifier%22%3A3%2C%22ScheduledStart%22%3Anull%2C%22ScheduleType%22%3A%22Recurring%22%2C%22JobInputP
meters%22%3A%5B%5D%2C%22ignoreParam%22%3A%22=%22%7D^C
LMint-PC droope # ^C
LMint-PC droope # nc -kl 80
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: text/plain
Content-Length: 116
{"JobTypeIdentifier":3,"ScheduledStart":null,"ScheduleType":"Recurring","JobInputParameters":[],"ignoreParam":"="}
LMint PC下垂#nc-kl 80
POST/HTTP/1.1
主机:本地主机
用户代理:Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:26.0)Gecko/20100101 Firefox/26.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:en-US,en;q=0.5
接受编码:gzip,deflate
连接:保持活力
内容类型:application/x-www-form-urlencoded
内容长度:168
%7B%22作业类型标识符%22%3A3%2C%22计划开始%22%3Anull%2C%22计划类型%22%3A%22重复性%22%2C%22作业输入
仪表%22%3A%5B%5D%2C%22信号参数%22%3A%22=%22%7D^C
LMint PC下垂#^C
LMint PC下垂#nc-kl 80
POST/HTTP/1.1
主机:本地主机
用户代理:Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:26.0)Gecko/20100101 Firefox/26.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:en-US,en;q=0.5
接受编码:gzip,deflate
连接:保持活力
内容类型:文本/纯文本
内容长度:116
{“JobTypeIdentifier”:3,“ScheduledStart”:null,“ScheduleType”:“Recurtive”,“JobInputParameters”:[],“ignoreParam”:“=”}
我在生成要发布的字符串时没有遇到问题。它是表单本身,通过浏览器进行url编码。这不是一个PHP问题。所以你想在浏览器上显示上面的
数据
字符串(带&),对吗?不,这里没有显示。我正在尝试创建一个表单,该表单发送一个变量“DATA”,其中包含如上所述的未编码字符串。我正在尝试将flash小程序中的表单替换为plan HTML表单。我一直在使用Firefox扩展TampterData来查看请求的外观。flash表单按上述方式发送数据,而服务器拒绝接受任何其他形式的数据…您可以这样做,如果您发现自己正在测试一项服务,并且需要未编码字符来执行攻击,您应该尝试。
LMint-PC droope # nc -kl 80
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 168
%7B%22JobTypeIdentifier%22%3A3%2C%22ScheduledStart%22%3Anull%2C%22ScheduleType%22%3A%22Recurring%22%2C%22JobInputP
meters%22%3A%5B%5D%2C%22ignoreParam%22%3A%22=%22%7D^C
LMint-PC droope # ^C
LMint-PC droope # nc -kl 80
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: text/plain
Content-Length: 116
{"JobTypeIdentifier":3,"ScheduledStart":null,"ScheduleType":"Recurring","JobInputParameters":[],"ignoreParam":"="}