Urlencode
Материал из InformationSecurity WIKI
Версия от 08:39, 4 июня 2016; Drakylar (обсуждение | вклад)
Содержание
Чем выделяется
Могут кодироваться как все символы, так и избранные.
Если не все символы,то только следующие:
!*'();:@&=+$,/?#[]
В случае с кодированием всех символов кодировка становится похожей на HEX кодирование.
Где часто используется
Используется преимущественно в кодировании HTTP запросов.
Скрипты
python
encode
import urllib
urllib.quote_plus('string_of_characters_like_these:$#@=?%^Q^$')
decode
import urllib
urllib.unquote_plus('erythrocyte+membrane+protein+1%2C+PfEMP1+%28VAR%29')
perl
encode
sub urlencode {
my $s = shift;
$s =~ s/ /+/g;
$s =~ s/([^A-Za-z0-9\+-])/sprintf("%%%02X", ord($1))/seg;
return $s;
}
decode
sub urldecode {
my $s = shift;
$s =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
$s =~ s/\+/ /g;
return $s;
}
ruby
encode
require 'uri'
URI.escape('Test Hi<>?/&;=:')
decode
require 'CGI'
string = CGI::unescape("%27Stop%21%27+said+Fred")
java
encode
String q = "random word £500 bank $";
String url = "http://example.com/query?q=" + URLEncoder.encode(q, "UTF-8");
decode
String result = java.net.URLDecoder.decode(url, "UTF-8");
Утилиты