{"id":831,"date":"2008-03-05T01:00:00","date_gmt":"2008-03-04T16:00:00","guid":{"rendered":"https:\/\/ecoop.net\/memo\/2008-03-05-1.html"},"modified":"2008-03-05T01:00:00","modified_gmt":"2008-03-04T16:00:00","slug":"2008-03-05-1","status":"publish","type":"post","link":"https:\/\/www.ecoop.net\/memo\/archives\/2008-03-05-1.html","title":{"rendered":"\u30bb\u30c3\u30b7\u30e7\u30f3\u30d5\u30a3\u30af\u30bb\u30fc\u30b7\u30e7\u30f3\u554f\u984c"},"content":{"rendered":"<p>\n<a href=\"http:\/\/itpro.nikkeibp.co.jp\/article\/COLUMN\/20080221\/294389\/\">ITpro \u306e\u8a18\u4e8b<\/a>\u3067 Session Fixation \u554f\u984c\u306b\u3064\u3044\u3066\u66f8\u304b\u308c\u3066\u3044\u305f\u306e\u3067 PHP \u3067\u306e\u5bfe\u7b56\u4f8b\u3092\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\u3002<br \/>\n&nbsp;<br \/>\nPHP \u3067\u306f\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u306b\u3001<a href=\"http:\/\/jp2.php.net\/manual\/ja\/function.session-regenerate-id.php\">session_regenerate_id<\/a>() \u3068\u3044\u3046\u95a2\u6570\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n<\/p>\n<blockquote><p>&lt;?php<br \/>\n&nbsp;<br \/>\nsession_start();<br \/>\n&nbsp;<br \/>\n$old = session_id();<br \/>\nsession_regenerate_id();<br \/>\n$new = session_id();<br \/>\n&nbsp;<br \/>\necho &#8220;$old -> $new&lt;br>&#8221;;<br \/>\n\/\/ \u7d50\u679c: <br \/>\n\/\/ d4aa3b6cfaedca70dc09262dfbf8c39e -> 53c031b85fe89e00d3b151eddfd91733\n<\/p><\/blockquote>\n<p>\u5177\u4f53\u7684\u306a\u5229\u7528\u65b9\u6cd5\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002\n<\/p>\n<blockquote><p>&lt;?php<br \/>\n&nbsp;<br \/>\nsession_start();<br \/>\n&nbsp;<br \/>\n$algo = &#8220;sha256&#8221;;<br \/>\n&nbsp;<br \/>\n\/\/ \u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u751f\u3067\u4fdd\u5b58\u305b\u305a\u30cf\u30c3\u30b7\u30e5\u3067\u6301\u3064(5.1.2 \u4ee5\u524d\u306f hash() \u95a2\u6570\u3092\u4f7f\u3048\u306a\u3044\u305f\u3081 mhash() \u307e\u305f\u306f md5() \u3067\u4ee3\u7528\u3059\u308b)<br \/>\n$password_hash = &#8220;d74ff0ee8da3b9806b18c877dbf29bbde50b5bd8e4dad7a3a725000feb82e8f1&#8221;; \/\/ hash($algo, &#8220;pass&#8221;);<br \/>\n$bAuthorized = !empty($_SESSION[&#8216;authorized&#8217;]);<br \/>\n&nbsp;<br \/>\nif(!$bAuthorized){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(empty($_GET[&#8216;p&#8217;]) || hash($algo, $_GET[&#8216;p&#8217;]) !== $password_hash){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ \u30ed\u30b0\u30a4\u30f3\u30da\u30fc\u30b8\u8868\u793a<br \/>\n?&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u672a\u8a8d\u8a3c(session_id = &lt;?=session_id()?&gt;)&lt;br><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form action=&#8221;&#8221; method=&#8221;GET&#8221;><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#8221;password&#8221; name=&#8221;p&#8221;><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#8221;submit&#8221; value=&#8221;\u30ed\u30b0\u30a4\u30f3&#8221;><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/form><br \/>\n&nbsp;<br \/>\n&lt;?php<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$bAuthorized = $_SESSION[&#8216;authorized&#8217;] = true;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u30d5\u30a3\u30af\u30bb\u30fc\u30b7\u30e7\u30f3\u5bfe\u7b56(Session Fixation)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session_regenerate_id(); \/\/ \u30ed\u30b0\u30a4\u30f3\u304c\u6210\u529f\u3057\u305f\u6bb5\u968e\u3067\u30bb\u30c3\u30b7\u30e7\u30f3ID \u3092\u66f4\u65b0\u57a2<br \/>\n&nbsp;<br \/>\n}<br \/>\n&nbsp;<br \/>\n?&gt;<br \/>\n\u8a8d\u8a3c\u6e08\u307f(session_id = &lt;?=session_id()?&gt;)\n<\/p><\/blockquote>\n<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u306b &#8220;pass&#8221; \u3068\u3044\u3046\u6587\u5b57\u5217\u3092\u5165\u308c\u3066\u8a8d\u8a3c\u3059\u308b\u3068 session_id \u304c\u66f8\u304d\u63db\u308f\u308b\u306e\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br \/>\n&nbsp;<br \/>\n\u3053\u306e\u95a2\u6570\u3092\u4f7f\u3046\u3068\u3001\u900f\u904e\u7684\u306b\u30bb\u30c3\u30b7\u30e7\u30f3ID\u304c\u66f8\u304d\u63db\u308f\u308b\u306e\u3067\u95a2\u6570\u547c\u3073\u51fa\u3057\u5074\u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u30d5\u30a3\u30af\u30bb\u30fc\u30b7\u30e7\u30f3\u5bfe\u7b56\u3092\u7c21\u5358\u306b\u65bd\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u5f53\u7136\u3067\u3059\u304c\u65e2\u306b\u4f55\u304b\u3092<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ITpro \u306e\u8a18\u4e8b\u3067 Session Fixation \u554f\u984c\u306b\u3064\u3044\u3066\u66f8\u304b\u308c\u3066\u3044\u305f\u306e\u3067 PHP \u3067\u306e\u5bfe\u7b56\u4f8b\u3092\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\u3002 &nbsp; PHP \u3067\u306f\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u306b\u3001session_regenerate_id( &hellip; <a href=\"https:\/\/www.ecoop.net\/memo\/archives\/2008-03-05-1.html\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u30bb\u30c3\u30b7\u30e7\u30f3\u30d5\u30a3\u30af\u30bb\u30fc\u30b7\u30e7\u30f3\u554f\u984c<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[32],"class_list":["post-831","post","type-post","status-publish","format-standard","hentry","tag-php"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/comments?post=831"}],"version-history":[{"count":0,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/831\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/media?parent=831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/categories?post=831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/tags?post=831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}