����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
use strict;
use warnings;
use Test::More;
use Test::Warnings qw( :all );
use Test::Fatal;
use URI::Escape qw( %escapes uri_escape uri_escape_utf8 uri_unescape );
is uri_escape("|abc�"), "%7Cabc%E5";
is uri_escape("abc", "b-d"), "a%62%63";
# New escapes in RFC 3986
is uri_escape("~*'()"), "~%2A%27%28%29";
is uri_escape("<\">"), "%3C%22%3E";
is uri_escape(undef), undef;
is uri_unescape("%7Cabc%e5"), "|abc�";
is_deeply [uri_unescape("%40A%42", "CDE", "F%47H")], [qw(@AB CDE FGH)];
is
uri_escape ('/', '/'),
'%2F',
'it should accept slash in unwanted characters',
;
is
uri_escape ('][', ']['),
'%5D%5B',
'it should accept regex char group terminator in unwanted characters',
;
is
uri_escape ('[]\\', '][\\'),
'%5B%5D%5C',
'it should accept regex escape character at the end of unwanted characters',
;
is
uri_escape ('[]\\${}', '][\\${`kill -0 -1`}'),
'%5B%5D\\%24%7B%7D',
'it should recognize scalar interpolation injection in unwanted characters',
;
is
uri_escape ('[]\\@{}', '][\\@{`kill -0 -1`}'),
'%5B%5D\\%40%7B%7D',
'it should recognize array interpolation injection in unwanted characters',
;
is
uri_escape ('[]\\%{}', '][\\%{`kill -0 -1`}'),
'%5B%5D\\%25%7B%7D',
'it should recognize hash interpolation injection in unwanted characters',
;
is
uri_escape ('a-b', '-bc'),
'a%2D%62',
'it should recognize leading minus',
;
is
uri_escape ('a-b', '^-bc'),
'%61-b',
'it should recognize leading ^-'
;
is
uri_escape ('a-b-1', '[:alpha:][:digit:]'),
'%61-%62-%31',
'it should recognize character groups'
;
is
uri_escape ('abcd-', '\w'),
'%61%62%63%64-',
'it should allow character class escapes'
;
is
uri_escape ('a/b`]c^', '/-^'),
'a%2Fb`%5Dc%5E',
'regex characters like / and ^ allowed in range'
;
like exception { uri_escape ('abcdef', 'd-c') },
qr/Invalid \[\] range "d-c" in regex/,
'invalid range with max less than min throws exception';
like join('', warnings {
is
uri_escape ('abcdeQE', '\Qabc\E'),
'%61%62%63de%51%45',
'it should allow character class escapes'
;
}), qr{
(?-x:Unrecognized escape \\Q in character class passed through in regex)
.*
(?-x:Unrecognized escape \\E in character class passed through in regex)
}xs,
'bad escapes emit warnings';
is
uri_escape ('abcd-[]', qr/[bc]/),
'a%62%63d-[]',
'allows regexp objects',
;
is
uri_escape ('a12b21c12d', qr/12/),
'a%31%32b21c%31%32d',
'allows regexp objects matching multiple characters',
;
is $escapes{"%"}, "%25";
is uri_escape_utf8("|abc�"), "%7Cabc%C3%A5";
skip "Perl 5.8.0 or higher required", 3 if $] < 5.008;
ok !eval { print uri_escape("abc" . chr(300)); 1 };
like $@, qr/^Can\'t escape \\x\{012C\}, try uri_escape_utf8\(\) instead/;
is uri_escape_utf8(chr(0xFFF)), "%E0%BF%BF";
done_testing;
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| 00-report-prereqs.dd | File | 3.7 KB | 0644 |
|
| 00-report-prereqs.t | File | 5.88 KB | 0644 |
|
| abs.t | File | 5.44 KB | 0644 |
|
| clone.t | File | 331 B | 0644 |
|
| cwd.t | File | 176 B | 0644 |
|
| data.t | File | 2.28 KB | 0644 |
|
| escape-char.t | File | 613 B | 0644 |
|
| escape.t | File | 2.88 KB | 0644 |
|
| file.t | File | 3.61 KB | 0644 |
|
| ftp.t | File | 803 B | 0644 |
|
| ftpes.t | File | 231 B | 0644 |
|
| ftps.t | File | 230 B | 0644 |
|
| generic.t | File | 3.71 KB | 0644 |
|
| geo_basic.t | File | 1.72 KB | 0644 |
|
| geo_construct.t | File | 2.1 KB | 0644 |
|
| geo_point.t | File | 429 B | 0644 |
|
| gopher.t | File | 1020 B | 0644 |
|
| heuristic.t | File | 3.35 KB | 0644 |
|
| http.t | File | 1.08 KB | 0644 |
|
| icap.t | File | 1.08 KB | 0644 |
|
| idna.t | File | 503 B | 0644 |
|
| ipv6.t | File | 220 B | 0644 |
|
| irc.t | File | 890 B | 0644 |
|
| ircs.t | File | 239 B | 0644 |
|
| iri.t | File | 2.71 KB | 0644 |
|
| ldap.t | File | 2.38 KB | 0644 |
|
| mailto.t | File | 2.34 KB | 0644 |
|
| mix.t | File | 1.44 KB | 0644 |
|
| mms.t | File | 555 B | 0644 |
|
| news.t | File | 1.01 KB | 0644 |
|
| num_eq.t | File | 389 B | 0644 |
|
| old-absconf.t | File | 730 B | 0644 |
|
| old-base.t | File | 34.04 KB | 0644 |
|
| old-file.t | File | 2.71 KB | 0644 |
|
| old-relbase.t | File | 748 B | 0644 |
|
| otpauth.t | File | 8.33 KB | 0644 |
|
| path-segments.t | File | 1000 B | 0644 |
|
| pop.t | File | 828 B | 0644 |
|
| punycode.t | File | 2.22 KB | 0644 |
|
| query-param.t | File | 1.96 KB | 0644 |
|
| query.t | File | 3.29 KB | 0644 |
|
| rel.t | File | 541 B | 0644 |
|
| rfc2732.t | File | 1.86 KB | 0644 |
|
| roy-test.t | File | 936 B | 0644 |
|
| roytest1.html | File | 7.32 KB | 0644 |
|
| roytest2.html | File | 3.56 KB | 0644 |
|
| roytest3.html | File | 3.01 KB | 0644 |
|
| roytest4.html | File | 3.63 KB | 0644 |
|
| roytest5.html | File | 3.28 KB | 0644 |
|
| rsync.t | File | 263 B | 0644 |
|
| rtsp.t | File | 651 B | 0644 |
|
| scheme-exceptions.t | File | 480 B | 0644 |
|
| scp.t | File | 283 B | 0644 |
|
| sftp.t | File | 285 B | 0644 |
|
| sip.t | File | 2.23 KB | 0644 |
|
| smb.t | File | 838 B | 0644 |
|
| smtp.t | File | 954 B | 0644 |
|
| sort-hash-query-form.t | File | 354 B | 0644 |
|
| split.t | File | 994 B | 0644 |
|
| sq-brackets-legacy.t | File | 1.08 KB | 0644 |
|
| sq-brackets.t | File | 8.01 KB | 0644 |
|
| ssh.t | File | 283 B | 0644 |
|
| storable-test.pl | File | 577 B | 0644 |
|
| storable.t | File | 234 B | 0644 |
|
| urn-isbn.t | File | 746 B | 0644 |
|
| urn-oid.t | File | 278 B | 0644 |
|
| urn-scheme-exceptions.t | File | 525 B | 0644 |
|
| userpass.t | File | 429 B | 0644 |
|
| utf8.t | File | 543 B | 0644 |
|
| ws.t | File | 1.06 KB | 0644 |
|