�ޤ���Web���ץ�����ˡ����̤ˡ��ܥ���򲡤��ʤɤ��Ʋ��̤򼡡������ܤ��Ƥ������ץꥱ�������ʥ�����ɥ����󥢥ץꥱ�������ʥͥåȥ���ʤ���ñ�Τ�ư����Ρˤ�ޤ�ơˤ��������Ȥ��ϡ��߷��ʳ�����ʤ⤷���ϻ���ˡ˿�1�Τ褦�ʲ������ܿޤ������Ƹ�Ƥ�ʤʤ�����ǧ�ˤ����������
�忧�λͳѤϲ��̤�ɽ������ȴ�������ȤλͳѤϥܥ����ɽ����
�����Web���ץ�Ȥ���������ˡ�����򤹤�����ò�����ȡ���2�Τ褦�����ܿޤ������롣
��������ϥ֥饦������������HTTP��request�ʥإå�����ӡ�POST�ξ��ϥܥǥ���ޤ�ˤ�ɽ���������δݤ�������¦�Ǥ�1���������ν�����ɽ�������������ν�����̤��֤�HTTP��response�ʥإå�����ӡ�HTML�ˤ�ɽ����response�ξ��ʸ��HTML�����Ƥ����������ΤǤ��롣�����δݤ����ʸ�Ͻ������Ƥ������Ǥ��ꡢ��������ʣ����response������ФƤ����硢�����η�̤ˤ�ä�������β��̤��ۤʤ���Ǥ��뤳�Ȥ�ɽ������������ȴ���ͳѤ�����ʬ���ξ����⤷�Ƥ��롣
���οޤ�����Ѥ��Ƥ���Τϡ�EC�����Ȥ�blog�����ӥ��ʤɤ˸�����ŵ��Ū�ʡ���Ͽ�Ŀ;����ѹ��פε�ǽ�Ǥ��롣�֥ᥤ���˥塼�ײ��̤Ρ���Ͽ�����ѹ��פΥ�󥯤򥯥�å�����ȡ�����Ͽ����DB�ɤ߽Ф��פν������¹Ԥ��졢���η�̡ʸ��ߤ���Ͽ����ˤ��ʲ��Τ褦��HTML�Ȥ��ƹ�������ƽ��Ϥ��졢
<form action="......" method="POST"> ��̾ <input type="text" name="name" value="����"> ���� <input type="text" name="addr" value="�����"> ���� <input type="text" name="tel" value="03-XXXX"> <input type="submit" value="��ǧ">
����Ͽ�����Խ��פβ��̤��ʲ��Τ褦��ɽ������롣
�ֳ�ǧ�ץܥ���򲡤��ȡ����ͼ������׽����������ֹ椬�����ֹ�η����򤷤Ƥ��뤫�ɤ����ʤɤθ����ˤ��Ԥ�졢����Ǥ���С֥ץ�ӥ塼�ײ��̤˿ʤࡣ�ץ�ӥ塼���̤ϼ��Τ褦�ʲ��̤Ȥʤ��������
����Ǥ�������Ǥ�����
��̾: ����
����: �����
����: 03-XXXX
���Ƥ����ǡ����μ��β��̤˿ʤޤ���ʡ���¸�פ򲡤����Ȥ��ν�����¸�����ˤ���ˤɤΤ褦����ˡ���Ѥ��뤫������2����μ�����ˡ�����롣
����ܤϡ�����¸�ץܥ���򲡤����Ȥ��Υ���������POST�᥽�åɤȤ������Υѥ�᥿�ˤ����ξ�����Ϥ��褦�ˤ�����ˡ�ǡ������ѥ�᥿�����̾�˸����ʤ��褦�ˤ��뤿��� <input type="hidden" ...> ���Ѥ��롣�Ĥޤꡢ�֥ץ�ӥ塼�ײ��̤�HTML�ϼ��Τ褦�ˤʤ롣
<p>����Ǥ�������Ǥ�����</p> ��̾: ����<br> ����: �����<br> ����: 03-XXXX<br> <form action="......" action="POST"> <input type="hidden" name="name" value="����"> <input type="hidden" name="addr" value="�����"> <input type="hidden" name="tel" value="03-XXXX"> <input type="submit" name="back" value="���"> <input type="submit" name="save" value="��¸"> </form>
�����������ܿޤ˽ñ¤¹ï¿½ï¿½ï¿½ï¿½ï¿½Î¤ï¿½ï¿½ï¿½3�Ǥ��롣
�Ĥ������POST�᥽�åɤˤ��HTTP request�Ǥ��뤳�Ȥ�ɽ����
�����ܤ���ˡ�ϡ���4�˼�����ΤǤ��롣
�����ϻ�ѷ��ϥ�����¦�Υ��֥������Ȥ�ɽ��������Ͽ�����Խ��ײ��̤����Ϥ��줿�ǡ������ֳ�ǧ�ץܥ���ǥ����Ф��������줿�Ȥ��������Фϡ��ͼ������פν��������ˡ����ϥǡ����򥵡���¦���֥������Ȥ˵����������θ�ν����ǤϤ��Υ��֥������Ȥ��ͤ򻲾Ȥ��Ƽ¹Ԥ���褦�ˤ��롣�ץ�ӥ塼���̤ν��Ϥ䡢�ץ�ӥ塼���̤ǡ���¸�ץܥ���򲡤����Ȥ��Ρ�DB����׽����Ǥ⡢���Υ��֥������Ȥ����ͤ򻲾Ȥ��ƽ�����¹Ԥ��롣
������������Ѥ�����硢�֥ץ�ӥ塼�ײ��̤� hidden�ѥ�᥿�����פȤʤ롣���η�̤Ȥ��ơ��֥ץ�ӥ塼�ײ��̤�������ܤ�HTTP����������POST�᥽�åɤǤʤ��Ƥ�褤���Ȥˤʤ롣
���ơ����Ρ֥�����¦���֥������ȡפϤɤΤ褦�˼¸�����Ф褤����������
�°פʤ��ξ�¤����ˡ�Ǥ褱��С��֥��å���󥪥֥������ȡסʥ�������桼�����Ȥ�1���Ѱդ��줿�������֡��֥��å�����ѿ��פȸƤ֥ߥɥ륦�����⤢��ˤˡ�name�ס�addr�ס�tel�פȤ���̾�����ѿ��ǵ������Ƥ����Ȥ���ȯ�ۤ��ФƤ����������
����������ʪ�Υץ������*1�Ǥ���С������ǡ����줬����ʤ�ñ����äǤʤ����Ȥˤ����˵��Ť��Ϥ������ᥤ���˥塼����Ȥ���¾�ε�ǽ������ʤ顢�ѿ�̾�����ͤ��ʤ��褦�ˤ��ʤ���Фʤ�ʤ�����������ʤˤ��⡢Ʊ����ǽ��Ʊ����ʣ���Ȥ����ˤɤ���������Ф褤�Τ������Ȥ��ä����Ȥ˻פ���ᤰ�餹�Ϥ�����
���������ͤ����ϡ����֥������Ȼظ��ץ�����ߥ󥰤�GUI�����ƥ�γ�ȯ�˸����Ƥ���Ȥ���ȯŸ���Ƥ����аޤ���礹�롣 ���֥������Ȼظ��ץ�����ߥ󥰤��Τ�ʤ��ץ�����ޤ�GUI�����ƥ�������Ȥ���ȡ��ѿ����������Ǥ��Ȥ������������ǥ��󥰤˴٤뤳�Ȥ����롣�ĤޤꡢƱ�����̤�ʣ���Υ�����ɥ��Ȥ��Ƴ����줿�Ȥ��ˡ������ǻȤ��ѿ�̾�����ͤ��뤳�Ȥ��򤱤褦�Ȥ��ơ��ѿ�������ˤ��ơ�������ɥ��ֹ�򥤥�ǥå����ˤ��ƥ�����������Ȥ���ȯ�ۤ������֥������Ȼظ��ץ�����ߥ󥰤��ΤäƤ���Ф�����������������ϼ����˲��򤵤�롣������ɥ��򳫤������ǡ�������ɥ����֥������Ȥ��new�פ��뤳�Ȥˤ�ꡢ���Υ�����ɥ����Ѥε������֤��Ѱդ���롣�ѿ��Ϥ��Υ��֥������Ȥ˥�������Ǥ���Τǡ�¾�Υ��֥������ȤǤɤ��ʤäƤ��뤫�򵤤ˤ���ɬ�פ��ʤ���
�����Υ�����ɥ����󥢥ץꥱ��������GUI�����ƥ೫ȯ�Ǥϡ�GUI�饤�֥�꤬�����������֥������Ȼظ�����������߷פ��졢�󶡤���Ƥ���Τǡ���ȯ�Ԥϼ����Ȥ���������ȯ��ˡ�˽������Ȥˤʤ롣
�Ȥ�������GUI�����ƥ��Web���ץ�Ȥ��ƺ��Ȥʤ�Ȥɤ�����������
������ɥ������GUI���ץ��Ʊ�ͤˡ�Web������¦�򡢥��֥������Ȥ��new�פ��ʤ���ư���褦�˺�뤳�ȤϤǤ��롣���Ȥϡ������Υ��֥������Ȥ�ɤ���äƥ��饤�����¦��Web�֥饦���ȷ�ӤĤ��뤫����
�ҤȤĤμ�������ˡ�ϡ�����������������ɥ����Ȥ˥��ꥢ���ֹ�򿶤ꡢ�����ֹ��֥饦�����Ϥ��������������Ȥ��֤�����褦�ˤ��뤳�ȤǤ���ʿ�5�ˡ�
��5�ϡ�2�ĤΡ��ɲá׽�����Ʊ���˿ʹԤ��Ƥ����ͻҤ�ɽ������ΤǤ��롣���ɲáפΥ�󥯤�é����ȡ�������ɥ����֥������Ȥ���������������ɥ����̤��륷�ꥢ���ֹ�����롣�����������֥������Ȥ򤽤Υ��ꥢ���ֹ�Ǹ����Ǥ���褦�ˡ����֥������ȥơ��֥����Ͽ����ʥ��å���󥪥֥������Ȥ���é����ơ��֥�ˡˡ�������ʤ��Ʋ��̤�HTML�ˤϡ�
<input type="hidden" name="winid" value="2">
�Τ褦�ˤ��ƥ�����ɥ��Υ��ꥢ���ֹ��winid�פ�������Ǥ�����POST�ʤޤ���GET�˥��������γƽ����Ǥϡ�HTTP request���winid���ͤ���ʥ��å���󥪥֥������ȷ�ͳ�ǡ˥��֥������Ȥò¸¡ºï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î»ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½ë¡£ï¿½ï¿½ï¿½Í¼ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½×¤Î½ï¿½ï¿½ï¿½ï¿½Ç¤ï¿½ï¿½Î¥ï¿½ï¿½Ö¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½È¤Î¥Õ¥ï¿½ï¿½ï¿½ï¿½ï¿½É¤ï¿½ï¿½Í¤ï¿½ñ¤¹ï¿½ï¿½ß¡ï¿½ï¿½ï¿½DB����פν����Ǥ����ͤ��ɤ߽Ф���DB�����ν�����¹Ԥ��롣
��������������ϡ����֥������Ȼظ���GUI�����ƥ��߷פ�ή�줫�餹��м����Ǥ���Ȥ����ʤ����Ĥ���Web���ץ�ե졼�����ǤϤ�������������ˡ���󶡤��Ƥ���Ǥ��������ˡ��������ʤ��顢�ºݤ�Web���ץ�Ǥ�������������ˡ��ȤäƤ�����Ͼ����ܤ��⤷��ʤ���
�ˤ⤫����餺��ʣ��������ɥ����Ѥ���Ʊ���Խ������Web���ץ�Ȥ����Τ����������櫓�ǤϤʤ�����������Τ褦�ʰ��̲����줿���֥������Ȼظ�Web���ץ�ե졼�������Ѥ����ˡ�ʣ��Ʊ���Խ���¸�����ˤϤɤ�����Τ��������������Ƥ��ξ�硢�Խ����Ϥκǽ���ʳ��ǡ���ǽ�˸�Í�β��餫�μ��̥����ɤ���ꤵ���ƻȤ���ˡ���Ȥ��Ƥ���ΤǤϤʤ������ֲ��餫�μ��̥����ɡפȤϡ������ƥ�ǥ�ˡ�����ʸ���ֹ���ä��ꡢ���������ƥ�Ǥ�������դ�����˳�������ʿ�6�ˡ�
���������ƥ�Ǥ���С����ɲá׵�ǽ�κǽ���ʳ����Խ��������դ���ꤵ������date�ץѥ�᥿�ˤ����ͤ�����Ƽ����̤ؤ��Ϥ������å���󥪥֥������Ȥǵ������Ƥ����٤��ǡ����ϡ����������դ��鸡�������ɤ߽ñ¤¤ï¿½ï¿½ï¿½è¤¦ï¿½Ëºï¿½ë¡£
���μ�����ˡ�Ǥϡ�Ʊ�����Υ���ȥ��Ʊ�����Խ����뤳�ȤϤǤ��ʤ��ʤ뤬�����ξ��ϥ桼���ˤ⤽�ε�ư��ľ���Ǥ��뤳�ȤǤ��뤿�ᡢ���λ��ͤ���Â�Ȥ���롣
�����Ƥ���Web���ץ�Ϥ�����ˡ�Ǻ��Ƥ��ޤ��Τǡʤ��뤤�Ͽ�3����ˡ�Ǻ�뤳�Ȥ�¿������ˡ����Τ褦�ʥ��ɥۥå��ʼ�����ˡ�Τ��Ȥ����ͤ������ȤΤʤ�Web�ץ�����ޤ⾯�ʤ��ʤ����⤷��ʤ���
�����������ȥꥯ�����ȥե����������CSRF�˹���ˤ���ﳲ�ϡ�Web���ץ꤬�߷׾����ꤷ�Ƥ��ʤ��������ܤ�é���뤳�Ȥˤ�äƵ����롣�Ǥ���С�Web���ץ꤬���ꤷ�Ƥ���������ܤ��������ʤ��褦�ˤ��뤳�Ȥˤ�äơʤ�˲��Ǥ���Ȥ������Ȥˤʤ롣
�������ܤ��������椹��Ȥʤä��Ȥ�����ʪ�Υץ�����ޤ��ޤ��פ��⤫�٤�ΤϿ�5�μ����Ǥ������������������곰�Υ桼�����ˤ�äƲ������ܤ򳰤�뤳�Ȥ��ɤ�����ˤϡ���5�Τ褦�˥�����ɥ������ֹ�Ȥ��ƥ��ꥢ���ֹ�Ǥ褫�ä��Ȥ��������줬���դ����軰�Ԥι�������ꤹ��Ȥʤ�ȡ������ͤ�ͽ¬������ͤȤ��ʤ��ƤϤʤ�ʤ�������ϡ���new�פ����Ȥ���winid�˽�ʬ��Ĺ��������ͤ�Ϳ����褦�ˤ���Ф褤��
CSRF�к��ˡ֥�󥿥���ȡ�����פ��Ѥ���Ȥ����ä��Ф�ȡ���ʪ�Υץ������ã�ϡ��ޤ���5�μ����ʤ�winid������ˤ���ˤ�Ƭ���⤫�٤�ΤǤϤʤ���������
�������ºݤˤϡ���3�ʤ�����6�μ�����ˡ�Ф��꤬���Ѥ���Ƥ���Ȥ������¤����롣��ǽŪ�ˤϤ���ǽ�ʬ�����餽�����Ƥ����Τˡ���ˤʤäƿ�5�μ�����ˡ����ɬ�ܤ��פȸ���줿�麤�Ǥ�������������Τˤ錄�äƺ��ľ�����ȤˤʤäƤ��ޤ���
��ǯ7��3���������������������ȥꥯ�����ȥե����������CSRF���к������ޤ����ʤޤʤ��ä��ΤϤʤ����פǤϡ�CSRF�к����ʤޤʤ��ä�������ʣ���󤲤�����������ǡ�
���󥹤��볫ȯ���ѼԤ�Ω�줫�餹��С��֤�����к���ɬ�ס�������к���ɬ�ספȸ����뤳�Ȥϡ��ץ�����ߥ����ؤ�ȿ����ȴ������뤳�Ȥ⤢�롣
XSS��SQL�ʤɤΥ��󥸥��������Ϥ��ȼ����ϡ��ȼ����Ǥ���Ȥ��������ˡ����������������ǥ��󥰤򤷤Ƥ���Ф���������ˤϤʤ�ʤ��Τ����顢���ؤ�ȿ�����ΤǤϤʤ����Хåե��������С��ե����⤽���������󥹤��볫ȯ���ѼԤˤȤäƤϡ��к������פȤ����Τ����ؤ���
��������CSRF�к���ɬ�פȤ����Τϡ��ɤ��ˤⵤ����������ΤȤʤ롣���̤����ܤ򤹤٤ƥ����å�����Ȥ����ΤǤ���Фޤ��狼�뤬�������β��̤˸�©�ʼ��ʤ��к���ųݤ��ʤ��Ȥ����ʤ��Ȥʤ�ȡ��ʤ�����������ʤ��褦�˴������롣
�Ƚ񤤤Ƥ��롣�������ܤ��������椹��Τϼ����ʼ����Ǥ��뤬�����μ����ϥ����С����ڥå��Ǥ��뤷���夫�餽�Τ褦���ѹ�����Τ����Ѥ����롣
��ʪ�Υץ�����ޤˤϡ��к��ϴ�ñ�Ǥʤ��פȻפ��Ƥ��뤳�Ȥ��к����٤餻�Ƥ���ΤǤϤʤ����ȹͤ�����
����ʤΤˡ��֥�󥿥���ȡ��������������Ѥ��٤��ȼ�ĥ�����ã�ϡ��ּ�������ñ�ʤ��������Ф�������ʤ����פȸ�����
hidden�ȥ��å����(��Cookie)��ͽ¬�Բ�ǽ��ʸ����������
���å����ID��ϥå��夹���ˡ����١����Ѥ���Τ�̵��̣��ʸ����ʤΤǰ��������⤤��
- �侩: ����
- ����: ��
- ����ˡ: �äˤʤ�
- ����: �ʰ�
- ������: �ʤ�
��󥿥�������åȡʥȡ�����ˤΥ����ɤʤ�4/27�λ����Ǥ⡢����ä�õ���Ф�����Ǥ⸫�Ĥ��ä��Ϥ��Ǥ���
>��󥿥���ȡ�������������Ȥ��Ȥ����������񤫤�Ƥ���Τ�����ɡ�
>��ľ����Ϥ���ä����ݤǤ��롣
���������ݤǤ������ºݤ˥����ɤ�񤤤Ƥߤ�ȿ��Ԥ������ʤ��󤸤�ʤ���
���礦�����ͤ��ܶȤ������֥��ץ곫ȯ�ʤΤǤ������㤨�С�������ñ¤¹ï¿½ï¿½ï¿½ï¿½
�ߤ����ʡ������֥��ץꥱ�����������ε�ǽ��ʣ���������ݤ���������٤��
��󥿥���ȡ������������Ȥ߹��ळ�Ȥ��餤���Ǥ�ʤ��ΤǤ�����
> �����Ǥ��͡����Τ�����ϴ��Фΰ㤤���Ȼפ��ޤ���
> ����ε�ǽ����٤Ƥ��ޤ��Ȥ���äȥ���Ǥ�����
> �ͤϤ�äѤ��󥿥���ˤ������ݤ���ͤ���ȡ�
��󥿥���ˤ�����Ͻ���2�ǥ��å���󥪥֥������Ȥ���ȡ����������
��ɬ�פ�����Τǡ��㤨��Java�ʤ󤫤���
session.removeAttribute( "token" );
��ä��ʤ��Ȥ����ޤ���͡�
��1��¿���Ǥ��͡��������ݤǤ������ʾ�
�ʤ�����ʤ˴�ñ����ñ���ȸ�����Τ������� ���Ի׵Ĥ˻פ���Ȥ������פ���ˡ���餬��ĥ��������ϡ���7�Τ褦�������Ȥ������ȤǤ��롣
�������Х��ѿ�1�Ĥˡ֥ȡ�����פ��������ˡ�ʤΤǡ�����Ǥ�Ʊ���Խ����Ǥ��ʤ��ʤ롣
�ºݤΥ�����
// ��ǧ���� session_start(); (ǧ�ڤʤ�ά) $uniq_id = md5(uniqid(rand(),1)); // ��¬�Բ�ǽ��ʸ��������� $_SESSION['uniq_id'] = $uniq_id; // ���å�������¸ setcookie('uniq_id', $uniq_id); // Cookie�ˤ���¸ // hidden�ˤ�����Ƥ��� print "<input type=hidden name=uniq_id value='{$uniq_id}'/>";
> 2���̰ʾ峫����Ƥ��ޤä����μ����ƤȤ���
> ��ä�ʣ���ʵ����ʤ�Ȥʤ����Ƥޤ�����
���餷�ޤ������䤬�ְ�äƤޤ�����
����Ŧ�ɤ���2���̰ʾ�ξ����θ���뤿�ᡢ��󥿥���ȡ����������ϼº�
�ˤϥȡ������̾���⤽�줾��ε�ǽ���Ȥ��̤Τ�Τ����Ѥ�����������Τ���
�����Ǥ���
�Ĥޤ��������񤯡פΥȡ������token1����������ä��פΥȡ������token2
�ˤ��롢�ʤɤǤ��͡�
�����ʤ�Ƚ���1�ڤӽ���2�ǡ֥ȡ������̾�������פȤ���������ɬ�פˤ�
��Τǡ������1�Ԥ�2�Ԥ��餤�������������Ǥ��������ݤ��ɤ����ϥ���Ǥ���
����
�ѿ���ǽ���Ȥ��̡��ˤ��Ƥ⡢Ʊ����ǽ��Ʊ���Խ��ϰ����Ȥ��ƤǤ��ʤ����ʥ��󥹥����ѿ���Ȥ��٤��Ȥ����˥��饹�ѿ���Ȥ��褦���äǤ��롣��
��ʬ�������Ȥ�Web���ץ���к������Ȥ��ˡ�Ʊ���Խ���ǽ�ˤʤ�����������ϼ�ͳ�������������Web���ץ��Ʊ���Խ������פǤ���С������к���ˡ����Ѥ��뤳�Ȥ�Ǥ����������
������Web���ץ���̤ˤ������к���ˡ���⤯�Ȥ��ˤϡ����ץ�δ����߷פ����¤�⤿�餹�褦�ʤ�ΤǤ����ܤ���
��5�μ�����ˡ��侩�Ǥ�����ä��ᤤ������˽Ҥ٤��褦�ˡ���ǰ�ʤ��餳�Υ��֥������Ȼظ����������Web���ץ�����Ϥ��ޤ���ڤ��Ƥ��ʤ�����3�μ�����ˡ���Ѥ��Ƥ�����Ǥ⡢��6���͡��ʼ�����ˡ�ξ��Ǥ⡢�ɤ�ʾ��ˤ�Ȥ����к���ˡ�򼨤������Ȥ�������
�Խ����Υ��󥹥��󥹤��Ȥ˥ȡ������Ѥε��������ݤ��褦�Ȥ���ȡ���6�μ��������ξ�硢�ּ��̥����ɡפ�¸�ߤˤޤ�Ƨ�߹�����������ʤ��ȡ�������γ�����ˡ�������Ǥ��ʤ����ҤȤĤ���ˤĤ��ƽ񤯤��ȤϤǤ��Ƥ⤽��Ϥ��٤ƤǤϤʤ���
�����ǡ������ƿ�7��������١����˲������뤳�Ȥ�ͤ��Ƥߤ롣���Ȥ��С����ο�8�Τ褦�ˤ���в��Ǥ����������
�ȡ������Ǽ���ѿ��򽸹緿���֥������ȤȤ���Ǥ�ոĤ�ȯ�Ԥ��줿�ȡ�������Ǽ���Ƥ�������DB����׽�������Ƭ�Ǥϡ�hidden�ѥ�᥿���Ϥ��줿�ȡ����󤬤��ν������˴ޤޤ�Ƥ��뤫�ɤ�����Ĵ�٤ơ������Υꥯ�����ȤǤ��뤫���ǧ���롣
��5�Ρ����곰�Υ桼�����ˤ�äƲ������ܤ򳰤�뤳�Ȥ��ɤ����ˤϡ�ID�����פ��Ƥ��ʤ��Ȥ����ʤ��ä������軰�Ԥ���ι���������ɤ������Ȥ��ˤϡ�ID����¸�Τ�ΤǤ��뤫��Ĵ�٤�Ф褤��Ʊ�����å����˳�Ǽ���줿�ȡ�����Ϥ��٤������β������ܤˤ���Τ�����Ǥ��롣
���Τ褦�ˤ��ƹͤ���ȡ��ȡ�����ϥ������󥻥å����Ƕ��̤�1�ĤǤ褤���Ȥ��狼�롣���̤��Ȥ��̤��ͤˤ���ɬ�פ�ʤ��������󥹥��󥹤��Ȥ��Ѥ���ɬ�פ�ʤ���
�֥�󥿥���ȡ�����פȤ���ȯ�ۤ����衢�������ܤ����˥���ȥ����뤹�뤳�Ȥ�CSRF���褷�褦�Ȥ����Τ�������������CSRF���褹���������Ū�ˤϡ��軰�Ԥ���ι����󥯤ˤ��������ܤʤΤ��������β������ܤʤΤ��������̤Ǥ���Ф褤�ΤǤ��롣
�⤷���������ܤδ�������ȥ������ɬ�פȤ��Ƥ��ƴ��˿�5�μ����򤷤Ƥ���ʤ�С�CSRF�к��ϥ�����ɥ�ID��ͽ¬������ͤˤ���Ф褤���������������ܤδ����ʥ���ȥ�����ϰ���Ū�ˤ���ɬ�פǤ��ꡢCSRF�к��Τ�������˿�5�μ�����侩����Τϳ�ȯ�Ԥ��Ф��ƹ�Ǥ�������
���Τ��ᡢ��ǯ4��27���������������������ȥꥯ�����ȥե����������CSRF�ˤ��������к���ˡ�פǤϡ�
��Ŭ�ڤʲ������
- ��󥿥���ȡ������Ȥ�ʤ��ƤϤʤ�ʤ���
�Ƚ񤤤��Τ��ä���
�������������Ȥ������ȤϤ����ưפ����ȤǤϤʤ�����ưŪ�˥����奢�Ǥ������CSRF�к��򤹤�ʤ�С������å��Ѥ��ͤϰŹ��Ū�˰����ʵ�����������Ϥ��������ʤ���Фʤ�ʤ���
��ʬ�λȤäƤ���Ķ��Ǥ��Τ褦����������Ϥ������˻Ȥ�����֤ˤʤäƤ��뤫�餽���Ȥ��Ȥ����Τϼ�ͳ�����ɤ⡢¾�ͤ��к����⤯���̤Ǥϡ�������Ķ������ꤷ�ơ����Τ褦����������Ϥλ��Ѥ�侩���ʤ��ƤϤʤ�ʤ���
���å����ID��Ȥ��Ȥ��������ϡ����������������������ʥץ�����ޤ���������������������Ѥ��Ƥ��ޤ����֡ˤ��򤱤뤳�Ȥ��Ǥ��롣�ʤ��ʤ顢���å����ID�ϰŹ��Ū�˰����ʵ�����������Ϥ���������Ƥ���Ϥ�������Ǥ��롣�ʤ����Ǥʤ���ϡ����Υ��å��������������Τ��ȼ���������Ȥ������Ȥˤʤꡢ���줬�ޤ����������٤��Ȥʤ롣��
tDiary��CSRF�к��Ǥ⡢������Ѥ���Τ��򤱤Ƥ��롣������ͳ�ϡ�tDiary�ϰ���Ū��CGI�Ķ���Ruby�������ư��뤳�Ȥ��ݾڤ��Ƥ��뤿�ᡢ���å�������������Ƴ����ɬ�ܤˤʤ�褦���к���ˡ�ϺΤꤿ���ʤ��ä����ȡ������ơ�Ruby����������ϡʾ��ʤ��Ȥ������ΡˤϰŹ��Ū�˰����ʤ�ΤǤϤʤ��ä��ʤɤ�OS�ˤ����Ƥ�Ȥ�����̣�ǡˤ���Ǥ��롣
�����ǡ�tDiary 2.1.2��CSRF�к��Ǥϡ�Referer:�����å��ˤ���к���ǥե���ȤȤ����ɤ����Ƥ� Referer:����ˤ��Ƥ�Ȥ���褦�ˤ������桼���ϡ��桼������Ǥ�ˤ����ƥ桼�����ê¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ê¤·ï¿½Æ»È¤ï¿½ï¿½ï¿½ï¿½È¤Ë¤ï¿½ï¿½ï¿½ï¿½ï¿½Î¤Ç¤ï¿½ï¿½ë¡£ï¿½æ¡¼ï¿½ï¿½ï¿½ï¿½ï¿½ê¥ï¿½ï¿½ï¿½Ï¡ï¿½ï¿½Å¹ï¿½ï¿½Åªï¿½Ë°ï¿½ï¿½ï¿½ï¿½Êµï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½å¤¤ï¿½ï¿½Î¤Ç¤ï¿½ï¿½ë¤¬ï¿½ï¿½ï¿½æ¡¼ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ê¤¹ï¿½ï¿½ï¿½Î¤Ç¤ï¿½ï¿½ê¡¢ï¿½ï¿½ï¿½ï¿½ï¿½Æ¥à¤¬ï¿½ï¿½Æ°Åªï¿½Ë¥ï¿½ï¿½ï¿½ï¿½å¥¢ï¿½Ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ð¤¦¤ï¿½Î¤Ç¤Ï¤Ê¤ï¿½ï¿½ï¿½
�ɤ����ǿͤ���ˤϡ�hidden�ϴ�ñ���ɤ��פȤ����פ����ߤ�����餷����
��ά�˲��⡢�������ɲäξ����ݥ��Ȥ���ɬ�פ��ʤ����Ȥ�������ǤϤ��뤬��Cookie�ǥ��å����������Ƥ�������񡢤��������������Ȼפ���(���⤽�⥻�å���������input[type="hidden"]���ǹԤ��٤��ǤϤʤ������⤬�ưפȤ����Τ⤢�뤷���⤷CSS3��content��appearance�����������ȡ���ñ�˥֥饦����ˤ������Ǥ�input[type="text"]�Τ褦��ɽ�����ƥǡ������ѹ�����������ľ�����ǽ�����⤤�������Cookie�ʤ����Ǥ��ʤ����Ȥ����Ȥ����������ǤϤʤ�����CSS3�Τ����Υץ��ѥƥ���Web���ץꥱ�������ˤȤäƤϡ��ð�Ū�Ǥ��롣�ޤ�����ά��
�ֲ���פȤ����Τϡ��֥饦���Υ桼����hidden�ѥ�᥿��Ϯ�뤳�Ȥ�ؤ��Ƥ���Τ��Ȼפ��뤬�����Τ褦����ͳ�ǡ֥��å���������hidden�ǹԤ��٤��Ǥʤ��פȤ���Τϡ���Ťΰ�̣�Ǹ���Ǥ��롣
���ˡ��֥饦�������������ͤ�桼������ͳ���Ѥ�����Τ������Ǥ���ʡֲ���פʤɤȤ���ɽ�����Ѥ��뤳�ȼ��Τ���Ŭ�ڤʤΤ����ˡ��ɤ�ʤդ����Ѥ����Ƥ⥻�å��������������Ǥ���褦�ˤ��ʤ��ƤϤʤ�ʤ������Τ���ˡ����å����ID�ˤϡ�ͽ¬����ʽ�����Ĺ���Ź��Ū�˰����ʵ���������Ѥ��뤳�Ȥ�ɬ�ܤˤʤäƤ��롣�ʡ��ưפ˲��⤵���ΤǴ����פʤɤȻפ��ͤϡ��桼��̾�򥻥å����������Ѥ��Ƥ����ꤹ��Τ���������*2��
����ˡ�hidden���ͤ��ѹ������������뺤�񤵤ȡ�cookie���ͤ��ѹ������������뺤�񤵤�Ʊ��Ǥ��롣��HTTP�Υإå��ˤ��뤫���ܥǥ��ˤ��뤫�ΰ㤤�Ǥ����ʤ�����
���������פ����ߤϾ��ʤ��ʤ��褦�ǡ���HTML�������Ǹ�����פȤ����и��������������Ф�����������Τ�������������cookie���ɤ�Τ��äơ����ɥ쥹�С��ˡ�javascript:document.cookie�פ��Ǥ���������ǤǤ��롣
����⡢�ɤޤ���ǽ����cookie��Ʊ���Ǥ��롣
�̾�ɤޤ��Τ��������SSL���ɻߤ��롣
CSRF�����å��Ѥ��Ѥ�����̩����θ���Ȥ��Ƥϡ�
�ʤɤ��ͤ�����Ȥ������������������ȥꥯ�����ȥե����������CSRF�ˤ��������к���ˡ�פǥ��å����ID�򤽤Τޤ޻Ȥ���ˡ��󤲤����Ȥ��Ф��ơ������Ĥ���Ƚ�����ä�����Ƥ���ͤ���Τϡ�������¦��֥饦�����ȼ����ˤ�ä�ϳ�̤��륱�����Ǥ��롣
�ޤ���ϳ�̤β�ǽ���Υѥ�������ȼ�����ʬ�ह��ȼ��Τ褦�ˤʤ롣
���Τ���hidden�ѥ�᥿��ϳ���Τϡ�1. ����� 3. �� 4.�Ǥ��롣
1.���ȼ���������Ȥ���hidden�ѥ�᥿��ϳ���Ȥ���cookie��ϳ���Τ����顢hidden�Υꥹ����������̤˸�Ƥ������ͳ�ˤʤ�ʤ���
���ˡ�3.���ȼ�������������Ȥ���hidden�ˡ�cookie��Ʊ���ͤΡ˥��å����ID������Ƥ����硢�ɤΤ褦�ʥꥹ�������뤫����������Referer�����å��ˤ��CSRF�к��򤷤Ƥ��ʤ���hidden�ѥ�᥿�ˤ��CSRF�к��򤷤Ƥ���ˤȤ��롣
���ξ�硢�ȼ������ͤ����hidden���ͤ�ϳ��뤳�Ȥ���ϳ��ʤ��Ϥ���cookie���ͤ�ϳ�줿�Τ�Ʊ����̤򾷤����Ȥ��顢��hidden�ˤ��Τ褦���ͤ������ΤϹ��ޤ����ʤ��פȤ����������ФƤ��롣
�����������å����ID��ϳ��뤳�Ȥˤ�äƵ�����ꥹ���ϥ��å����ϥ�����å�����Ǥ���Ȥ�����3.���ȼ����������硢������ˤ����hidden�˥��å����ID������ʤ��ä��Ȥ��Ƥ�˥��å����ϥ�����å���Ʊ���ζ��Ҥ������롣������ͳ��ʲ��˵�����
CSRF����ζ��Ҥ����å����ϥ�����å�����Ȱۤʤ����κ��ϡ����å����ϥ�����å��ǤϸĿ;���ʤɤ�����Ǥ����礬����Τ��Ф���CSRF�Ǥ�HTTP��response������Ǥ��ʤ����ᡢ��������ľ��Ū�ʾ���ϳ�̤ζ��ҤϤʤ��Ȥ������Ǥ��롣
���������������Ǥϡ�HTML�ƥ����ȡ�hidden�ѥ�᥿��ޤ�ˤ�ϳ����ȼ����פ�¸�ߤ��ꤷ�Ƥ���Τǡ�����Ԥ�CSRF�����response������Ǥ��롣�Ĥޤꡢľ�ܤ˸Ŀ;���������߽Ф����Ȥ��Ǥ��롣
����κ��ϡ�CSRF������̾ñȯ�Υ������������Ǥ��ʤ��Ȥ������Ǥ��롣�ĤޤꡢWeb���ץ�ι����ˤ�äƤϡ�1�ڡ����ܤ�response�˴ޤޤ���ͤ�Ȥä�2�ڡ����ܤ�request�˴ޤ�ʤ�����Ū��ã���Ǥ��ʤ����̤���������Ȥ������̾��CSRF�ǤϤ����2�ĤΥڡ�����Ϣ³��������򤷤����뤳�ȤϤǤ��ʤ����ʤ������������뤫�餳����hidden�ѥ�᥿����̩�����������Ǥ������Ȥ�CSRF�к��Ȥʤ����롣�ˤ������٤ơ����å����ϥ�����å�����ϡ�Ϣ³�����ڡ����Υ���������ͳ������ΤǤ��뤫�顢ñȯ�������������Ǥ��ʤ�CSRF�����궯�Ϥ��Ȥ������Ȥˤʤ롣
�������������Ǥϡ�HTML�ƥ����ȡ�hidden�ѥ�᥿��ޤ�ˤ�ϳ����ȼ����פ�¸�ߤ��ꤷ�Ƥ��롣����ϡ�1�ڡ����ܤؤ�CSRF�����response�򹶷�Ԥ��ɤ��Ȥ������Ȥ��̣����Τ����顢�����ͤ�Ȥä�2�ڡ����ܤ�CSRF����ؤ�³���뤳�Ȥ��Ǥ��Ƥ��ޤ���
��äơ����å����ϥ�����å�������Ѥ��ʤ��Ƥ⡢�����Ʊ�����Ҥ�⤿�餹����ϲ�ǽ�Ǥ��롣
���Ҥ˺����ʤ��ΤǤ���ʤ�С�hidden�ѥ�᥿��cookie��Ʊ�����å����ID������Ƥ������Ȥ������ʶ��Ҥ����ळ�ȤϤʤ���
����Ͽ������äǤϤʤ������Ȥ��С�2000ǯ��Ω��³����ȯ�Ф���Java�Ρ֥ͥå���³��ǽ��Ǥ�ե����ȤؤΥ���������������ȼ����ϡ��ޤ��ˤ��δ������Τ����Τ��ä�������Ԥλųݤ������ץ�åȤ�ɽ�������Ȥ��������ȼ������ͤ����ȡ�����Java���ץ�åȤϡ��桼���������������Web���ץ�˥����������ơ��������˾�ü�뤳�Ȥ��Ǥ��������θ����ϡ�����ԤΥץ�����ब�������襵���Ȥ�response��������Ȥ������ߥ��Ǥ��ä���
Ʊ�ͤˡ�JavaScript�Ρ�Ʊ���ۥ��ȤΥڡ�����DOM�ˤ������������Ǥ��ʤ��פȤ������������ˤ���ȼ���������ޤǤ�¿��ȯ������ƤϽ�������Ƥ������������ȼ�����������⡢Ʊ�����Ҥ����ä����ʤ�äȤ⤳�Υ������Ǥϡ�cookie����ޤ���ΤǤ��ä�������
�Ĥ�� 4.�Υ������Ǥ��뤬��hidden����ϳ�졢����ʳ���HTML�ƥ����Ȥ�ϳ��ʤ��Ȥ�����������ȼ������Ϥ�����������Τ����������Ĥޤꡢ�ʲ��ζ�Ĵ��ʬ�ʳ���ϳ�줺����Ĵ��ʬ����ϳ���Ȥ����ȼ����Ǥ��롣
��̾: ����<br> ����: �����<br> ����: 03-XXXX<br> <form action="......" method="POST"> ��̾ <input type="text" name="name" value="����"><br> ���� <input type="text" name="addr" value="�����"><br> ���� <input type="text" name="tel" value="03-XXXX"><br> <input type="hidden" name="sessionid" value="2aa5adb93356d85697cd0a114eb2100f"> <input type="submit" value="��ǧ">
���Τ褦���������ü���ȼ����������������ǽ��������ȿ��ۤ���ʤ�С��֥��å����ID�򤽤Τޤ�hidden������ʤ��ۤ����褤�פȤ�������������Ω�ġ�
���ˡ��֥��å����ID��ϥå��夷�Ƥ����Ф褤�ס֥ϥå��夷�ʤ���ꤷ�������褤�˷�ޤäƤ뤷�������Ȥ⤫����ʤ��Τ������äƤ����Ф����פȤ�����ĥ�����ä������Ϥ�������������������
��³����
*1 Web�ǥ����ʤ���������˷Ǽ��ĥץ�����ޤǤʤ���
*2 ����̩�����ޤޤʤ�COOKIE����ä��������������������ȼ����׻��ȡ�
����: �Ȥꤢ������������3��ã�������ȼ����Ȥ���CSSXSS��¸�ߤ���(�Ȥ����������������) CSRF�ȥ��å���󥸥�å��ΰ㤤�Ȥ��ơ��ϤƤ����Τ褦��Ĺ�����å����ξ��ˡ� CSRF�Ǥ���������ѼԤΥ���������ȥꥬ�Ȥ��ư������������ ���å���󥸥�å��Ǥϡ�..
������������ �վ�������� http://video.google.com/videoplay?docid=6176491654107670145 http://takagi-hiromitsu.jp/diary/20060409.html http://faker.but.jp/column/index.php?p=84 ���ȤǤߤ褦 http://japan.cnet.com/news/ent/story/0,2000047623,20098867,...
��Τ������٤��ʤäƤ��ޤä��������ڻ��ȿ�����ɤޤ���ĺ������
...
Link/Security/CSRF �� ��CSRF(�����������ȥꥯ�����ȥե���������) CSRF - �����������ȥꥯ�����ȥե��������� ���̤Ρ֤Ϥޤ������פ����߽Ф���CSRF���ȼ����Ȥϡ� CSRF Blog �����������ȥꥯ�����ȥե���������(CSRF)���������к���ˡ CSRF�ϡ֥�������...