HTMLエスケープ

CGI::escapeHTMLメソッドにより、エスケープが可能

test.cgi

#!"C:/Perl64/bin/perl.exe"
 
use strict;
use warnings;
 
use CGI;
 
my $_title = "テスト";
my $_data = "エスケープ";
my $_escape;
my $_escape2;
 
# エスケープデータ設定
$_escape = "<input type=\"text\" name=\"item1\" value=\"aaaaaaaaaa\" />";
 
# エスケープ対応
$_escape2 = CGI::escapeHTML($_escape);
 
my $_xss = "<input type=\"text\" name=\"aaaa\" value=\"\" /><script>alert('aaa');</script>\" />";
 
# エスケープ対応
my $_xss2 = CGI::escapeHTML($_xss);
 
my $_xss3a = "\" /><script>alert('aaa');</script>";
my $_xss3 = CGI::escapeHTML($_xss3a);
 
print "Content-Type: text/html;charset=utf-8;\n\n";
 
print <<HTML_EOF;
<html>
	<head>
		<title>$_title</title>
	</head>
	<body>
		<div>
			$_data
		</div>
		<hr />
		<div>
			エスケープなし<div>$_escape</div>
			エスケープ済み<div>$_escape2</div>
		</div>
		<hr />
		<div>
			エスケープ済み<div>$_xss2</div>
			エスケープ済み<div><input type="text" name="bbb" value="$_xss3" /></div>
		</div>
	</body>
</html>
HTML_EOF
 
 

HTMLソース

<html>
	<head>
		<title>テスト</title>
	</head>
	<body>
		<div>
			エスケープ
		</div>
		<hr />
 
		<div>
			エスケープなし<div><input type="text" name="item1" value="aaaaaaaaaa" /></div>
			エスケープ済み<div><input type=&quot;text&quot; name=&quot;item1&quot; value=&quot;aaaaaaaaaa&quot; /></div>
 
		</div>
		<hr />
		<div>
			エスケープ済み<div><input type=&quot;text&quot; name=&quot;aaaa&quot; value=&quot;&quot; /><script>alert(&#39;aaa&#39;);</script>&quot; /></div>
 
			エスケープ済み<div><input type="text" name="bbb" value="&quot; /><script>alert(&#39;aaa&#39;);</script>" /></div>
		</div>
	</body>
</html>
 
 
 

画面







最終更新:2012年01月20日 21:38