とんとんさん有り難うございます。
参考にさせて頂きました。早速質問ですが、IPAのURLサニタイジング関数についてですがperlフォームやperlショッピングカートにも適用
出来るのですよね? 以下を2行目以降に追加すれば良いのでしょうか?
-----------------------
リスト3 URLサニタイジング関数 IPA
1 $url = &ez_url_sanitize($url); # $urlをサニタイズ
2
3 sub ez_url_sanitize {
4 my $url = $_[0];
5
6 ### もしURLで許可されていない文字があるなら空文字列を返す ###
7 # ---
http://www.ietf.org/rfc/rfc2396.txt ---
8 # uric = reserved | unreserved | escaped
9 # reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
10 # unreserved = alphanum | mark
11 # mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
12 # escaped = "%" hex hex
13
14 return '' if($url =~ m|[^;/?:@&=+\$,A-Za-z0-9\-_.!~*'()%]|);
15
16 ### もし未知のスキームなら空文字列を返す ###
17 # ---
http://www.ietf.org/rfc/rfc2396.txt ---
18 # scheme = alpha *( alpha | digit | "+" | "-" | "." )
19
20 if($url =~ /^([A-Za-z][A-Za-z0-9+\-.]*):/) {
21 # $urlにはスキームがあるのでチェック
22 my $scheme = lc($1); # スキームを小文字に変換
23 my $allowed = 0;
24 $allowed = 1 if($scheme eq 'http');
25 $allowed = 1 if($scheme eq 'https');
26 $allowed = 1 if($scheme eq 'mailto');
27 return '' if(not $allowed);
28 }
29
30 ### HTMLエスケープ ###
31 # special = "&" | "<" | ">" | '"' | "'"
32 # URL許可文字だけなので"<",">",'"'は$url中に存在しない
33
34 $url =~ s/&/&/g; # & → &
35 $url =~ s/'/'/g; # ' → '
36
37 return $url;
38 }
-----------------------