以前は、cookieのhttponly 属性に対し、うるさく言われることはありませんでしたが、 最近は、cookieのhttponly 属性を使用していない場合、セキュリティリスクの一つとして、 指摘されます。
ただ、httponly 属性のあるcookieは、javascriptから参照できなくなる為、非常に不便。
なので、必要なcookieにのみ付けるように。
httponlyの有無により、javascriptからの参照可否を確認できます
#!/usr/local/bin/perl use strict; use warnings; use CGI; use CGI::Cookie; use Data::Dumper; main(); sub main { my $cgi = CGI->new(); my $cookie_1 = CGI::Cookie->new(-name => 'key_1', -value => 'val_1', -httponly=> 0); my $cookie_2 = CGI::Cookie->new(-name => 'key_2', -value => 'val_2', -httponly=> 1); print CGI::header(-type=>'text/html',-charset=>'UTF-8', -cookie=>[$cookie_1,$cookie_2]); print html_src(); } sub html_src { my $html_src =<<EOF; <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script> <script> function get_cookie(){ alert( 'cookie_1=' + \$.cookie('key_1') ); alert( 'cookie_2=' + \$.cookie('key_2') ); } </script> </head> <body> <button type="button" onClick="get_cookie();">GET COOKIE</button> </body> </html> EOF }