<��������(2006ǯ04��02��) ��������(2006ǯ04��12��)> �ǿ� �Խ�

���ڹ��������������

�ܼ� �Ϥ���� Ϣ����:[email protected]
ˬ��Կ� ����: 787   ����: 1603

2006ǯ04��09��

�� CSRF�к��ˡ֥�󥿥���ȡ������������侩���ʤ���ͳ

Web���ץ������ˡ�δ��ä��ǧ

�ޤ���Web���ץ�����ˡ����̤ˡ��ܥ���򲡤��ʤɤ��Ʋ��̤򼡡������ܤ��Ƥ������ץꥱ�������ʥ�����ɥ����󥢥ץꥱ�������ʥͥåȥ���ʤ���ñ�Τ�ư����Ρˤ�ޤ�ơˤ��������Ȥ��ϡ��߷��ʳ�����ʤ⤷���ϻ���ˡ˿�1�Τ褦�ʲ������ܿޤ������Ƹ�Ƥ�ʤʤ�����ǧ�ˤ����������

��1: ����Ū�ʲ����߷׿�

�忧�λͳѤϲ��̤�ɽ������ȴ�������ȤλͳѤϥܥ����ɽ����

�����Web���ץ�Ȥ���������ˡ�����򤹤�����ò�����ȡ���2�Τ褦�����ܿޤ������롣

��2: Web���ץ�ˤ�����������ܿ�

��������ϥ֥饦������������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�Ǥ��롣

��3: ����ܤμ�����ˡ

�Ĥ������POST�᥽�åɤˤ��HTTP request�Ǥ��뤳�Ȥ�ɽ����

�����ܤ���ˡ�ϡ���4�˼�����ΤǤ��롣

��4: ����ܤμ�����ˡ

�����ϻ�ѷ��ϥ�����¦�Υ��֥������Ȥ�ɽ��������Ͽ�����Խ��ײ��̤����Ϥ��줿�ǡ������ֳ�ǧ�ץܥ���ǥ����Ф��������줿�Ȥ��������Фϡ��ͼ������פν��������ˡ����ϥǡ����򥵡���¦���֥������Ȥ˵����������θ�ν����ǤϤ��Υ��֥������Ȥ��ͤ򻲾Ȥ��Ƽ¹Ԥ���褦�ˤ��롣�ץ�ӥ塼���̤ν��Ϥ䡢�ץ�ӥ塼���̤ǡ���¸�ץܥ���򲡤����Ȥ��Ρ�DB����׽����Ǥ⡢���Υ��֥������Ȥ����ͤ򻲾Ȥ��ƽ�����¹Ԥ��롣

������������Ѥ�����硢�֥ץ�ӥ塼�ײ��̤� hidden�ѥ�᥿�����פȤʤ롣���η�̤Ȥ��ơ��֥ץ�ӥ塼�ײ��̤�������ܤ�HTTP����������POST�᥽�åɤǤʤ��Ƥ�褤���Ȥˤʤ롣

���ơ����Ρ֥�����¦���֥������ȡפϤɤΤ褦�˼¸�����Ф褤����������

�°פʤ��ξ�¤����ˡ�Ǥ褱��С��֥��å���󥪥֥������ȡסʥ�������桼�����Ȥ�1���Ѱդ��줿�������֡��֥��å�����ѿ��פȸƤ֥ߥɥ륦�����⤢��ˤˡ�name�ס�addr�ס�tel�פȤ���̾�����ѿ��ǵ������Ƥ����Ȥ���ȯ�ۤ��ФƤ����������

����������ʪ�Υץ������*1�Ǥ���С������ǡ����줬����ʤ�ñ����äǤʤ����Ȥˤ����˵��Ť��Ϥ������ᥤ���˥塼����Ȥ���¾�ε�ǽ������ʤ顢�ѿ�̾�����ͤ��ʤ��褦�ˤ��ʤ���Фʤ�ʤ�����������ʤˤ��⡢Ʊ����ǽ��Ʊ����ʣ���Ȥ����ˤɤ���������Ф褤�Τ������Ȥ��ä����Ȥ˻פ���ᤰ�餹�Ϥ�����

���������ͤ����ϡ����֥������Ȼظ��ץ�����ߥ󥰤�GUI�����ƥ�γ�ȯ�˸����Ƥ���Ȥ���ȯŸ���Ƥ����аޤ���礹�롣 ���֥������Ȼظ��ץ�����ߥ󥰤��Τ�ʤ��ץ�����ޤ�GUI�����ƥ�������Ȥ���ȡ��ѿ����������Ǥ��Ȥ������������ǥ��󥰤˴٤뤳�Ȥ����롣�ĤޤꡢƱ�����̤�ʣ���Υ�����ɥ��Ȥ��Ƴ����줿�Ȥ��ˡ������ǻȤ��ѿ�̾�����ͤ��뤳�Ȥ��򤱤褦�Ȥ��ơ��ѿ�������ˤ��ơ�������ɥ��ֹ�򥤥�ǥå����ˤ��ƥ�����������Ȥ���ȯ�ۤ������֥������Ȼظ��ץ�����ߥ󥰤��ΤäƤ���Ф�����������������ϼ����˲��򤵤�롣������ɥ��򳫤������ǡ�������ɥ����֥������Ȥ��new�פ��뤳�Ȥˤ�ꡢ���Υ�����ɥ����Ѥε������֤��Ѱդ���롣�ѿ��Ϥ��Υ��֥������Ȥ˥�������Ǥ���Τǡ�¾�Υ��֥������ȤǤɤ��ʤäƤ��뤫�򵤤ˤ���ɬ�פ��ʤ���

�����Υ�����ɥ����󥢥ץꥱ��������GUI�����ƥ೫ȯ�Ǥϡ�GUI�饤�֥�꤬�����������֥������Ȼظ�����������߷פ��졢�󶡤���Ƥ���Τǡ���ȯ�Ԥϼ����Ȥ���������ȯ��ˡ�˽������Ȥˤʤ롣

�Ȥ�������GUI�����ƥ��Web���ץ�Ȥ��ƺ��Ȥʤ�Ȥɤ�����������

������ɥ������GUI���ץ��Ʊ�ͤˡ�Web������¦�򡢥��֥������Ȥ��new�פ��ʤ���ư���褦�˺�뤳�ȤϤǤ��롣���Ȥϡ������Υ��֥������Ȥ�ɤ���äƥ��饤�����¦��Web�֥饦���ȷ�ӤĤ��뤫����

�ҤȤĤμ�������ˡ�ϡ�����������������ɥ����Ȥ˥��ꥢ���ֹ�򿶤ꡢ�����ֹ��֥饦�����Ϥ��������������Ȥ��֤�����褦�ˤ��뤳�ȤǤ���ʿ�5�ˡ�

��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�ˡ�

��6: ���������ƥ���ò��������ɥۥå����߷פ���

���������ƥ�Ǥ���С����ɲá׵�ǽ�κǽ���ʳ����Խ��������դ���ꤵ������date�ץѥ�᥿�ˤ����ͤ�����Ƽ����̤ؤ��Ϥ������å���󥪥֥������Ȥǵ������Ƥ����٤��ǡ����ϡ����������դ��鸡�������ɤ߽񤭤���褦�˺�롣

���μ�����ˡ�Ǥϡ�Ʊ�����Υ���ȥ��Ʊ�����Խ����뤳�ȤϤǤ��ʤ��ʤ뤬�����ξ��ϥ桼���ˤ⤽�ε�ư��ľ���Ǥ��뤳�ȤǤ��뤿�ᡢ���λ��ͤ���­�Ȥ���롣

�����Ƥ���Web���ץ�Ϥ�����ˡ�Ǻ��Ƥ��ޤ��Τǡʤ��뤤�Ͽ�3����ˡ�Ǻ�뤳�Ȥ�¿������ˡ����Τ褦�ʥ��ɥۥå��ʼ�����ˡ�Τ��Ȥ����ͤ������ȤΤʤ�Web�ץ�����ޤ⾯�ʤ��ʤ����⤷��ʤ���

CSRF�к��Ȥ��Ƥβ�����������

�����������ȥꥯ�����ȥե����������CSRF�˹���ˤ���ﳲ�ϡ�Web���ץ꤬�߷׾����ꤷ�Ƥ��ʤ��������ܤ�é���뤳�Ȥˤ�äƵ����롣�Ǥ���С�Web���ץ꤬���ꤷ�Ƥ���������ܤ��������ʤ��褦�ˤ��뤳�Ȥˤ�äơʤ�˲��Ǥ���Ȥ������Ȥˤʤ롣

�������ܤ��������椹��Ȥʤä��Ȥ�����ʪ�Υץ�����ޤ��ޤ��פ��⤫�٤�ΤϿ�5�μ����Ǥ������������������곰�Υ桼�����ˤ�äƲ������ܤ򳰤�뤳�Ȥ��ɤ�����ˤϡ���5�Τ褦�˥�����ɥ������ֹ�Ȥ��ƥ��ꥢ���ֹ�Ǥ褫�ä��Ȥ��������줬���դ����軰�Ԥι�������ꤹ��Ȥʤ�ȡ������ͤ�ͽ¬������ͤȤ��ʤ��ƤϤʤ�ʤ�������ϡ���new�פ����Ȥ���winid�˽�ʬ��Ĺ��������ͤ�Ϳ����褦�ˤ���Ф褤��

CSRF�к��ˡ֥�󥿥���ȡ�����פ��Ѥ���Ȥ����ä��Ф�ȡ���ʪ�Υץ������ã�ϡ��ޤ���5�μ����ʤ�winid������ˤ���ˤ�Ƭ���⤫�٤�ΤǤϤʤ���������

�������ºݤˤϡ���3�ʤ�����6�μ�����ˡ�Ф��꤬���Ѥ���Ƥ���Ȥ������¤����롣��ǽŪ�ˤϤ���ǽ�ʬ�����餽�����Ƥ����Τˡ���ˤʤäƿ�5�μ�����ˡ����ɬ�ܤ��פȸ���줿�麤�Ǥ�������������Τˤ錄�äƺ��ľ�����ȤˤʤäƤ��ޤ���

��ǯ7��3���������������������ȥꥯ�����ȥե����������CSRF���к������ޤ����ʤޤʤ��ä��ΤϤʤ����פǤϡ�CSRF�к����ʤޤʤ��ä�������ʣ���󤲤�����������ǡ�

���󥹤��볫ȯ���ѼԤ�Ω�줫�餹��С��֤�����к���ɬ�ס�������к���ɬ�ספȸ����뤳�Ȥϡ��ץ�����ߥ����ؤ�ȿ����ȴ������뤳�Ȥ⤢�롣

XSS��SQL�ʤɤΥ��󥸥��������Ϥ��ȼ����ϡ��ȼ����Ǥ���Ȥ��������ˡ����������������ǥ��󥰤򤷤Ƥ���Ф���������ˤϤʤ�ʤ��Τ����顢���ؤ�ȿ�����ΤǤϤʤ����Хåե��������С��ե����⤽���������󥹤��볫ȯ���ѼԤˤȤäƤϡ��к������פȤ����Τ����ؤ���

��������CSRF�к���ɬ�פȤ����Τϡ��ɤ��ˤⵤ����������ΤȤʤ롣���̤����ܤ򤹤٤ƥ����å�����Ȥ����ΤǤ���Фޤ��狼�뤬�������β��̤˸�©�ʼ��ʤ��к���ųݤ��ʤ��Ȥ����ʤ��Ȥʤ�ȡ��ʤ�����������ʤ��褦�˴������롣

�����������ȥꥯ�����ȥե����������CSRF���к������ޤ����ʤޤʤ��ä��ΤϤʤ���, 2005ǯ7��3��������

�Ƚ񤤤Ƥ��롣�������ܤ��������椹��Τϼ����ʼ����Ǥ��뤬�����μ����ϥ����С����ڥå��Ǥ��뤷���夫�餽�Τ褦���ѹ�����Τ����Ѥ����롣

��ʪ�Υץ�����ޤˤϡ��к��ϴ�ñ�Ǥʤ��פȻפ��Ƥ��뤳�Ȥ��к����٤餻�Ƥ���ΤǤϤʤ����ȹͤ�����

�֥�󥿥���ȡ�����������äƲ���

����ʤΤˡ��֥�󥿥���ȡ��������������Ѥ��٤��ȼ�ĥ�����ã�ϡ��ּ�������ñ�ʤ��������Ф�������ʤ����פȸ�����

  • CSRF�к�ˡ�ȸ���, �������ʥ��

    hidden�ȥ��å����(��Cookie)��ͽ¬�Բ�ǽ��ʸ����������

    • �侩: ����
    • ����: ��
    • ����ˡ: �äˤʤ�
    • ����: �ʰ�
    • ������: �ʤ�
    ���å����ID��ϥå��夹���ˡ����١����Ѥ���Τ�̵��̣��ʸ����ʤΤǰ��������⤤��

  • PHP : �֥ץ�����ߥ󥰲�����Ҥ��ȼ�����ɤ����뤫�פؤ�ȿ���Τ褦�ʤ��1, PEAK XOOPS���ݡ���&�¸���, 2006ǯ1��21��

    ��󥿥�������åȡʥȡ�����ˤΥ����ɤʤ�4/27�λ����Ǥ⡢����ä�õ���Ф�����Ǥ⸫�Ĥ��ä��Ϥ��Ǥ���

  • Sea Surfers ML:0000015 Re: CSSXSS�ˤĤ������ò¤·¤Æ¤ï¿½ï¿½Ê¤ï¿½ï¿½Ã¤ï¿½ï¿½ï¿½ï¿½Í¤Ç¤ï¿½, Kanatoko, 2006ǯ3��31��

    >��󥿥���ȡ�������������Ȥ��Ȥ����������񤫤�Ƥ���Τ�����ɡ�
    >��ľ����Ϥ���ä����ݤǤ��롣

    ���������ݤǤ������ºݤ˥����ɤ�񤤤Ƥߤ�ȿ��Ԥ������ʤ��󤸤�ʤ���
    ���礦�����ͤ��ܶȤ������֥��ץ곫ȯ�ʤΤǤ������㤨�С�������񤭹����
    �ߤ����ʡ������֥��ץꥱ�����������ε�ǽ��ʣ���������ݤ���������٤��
    ��󥿥���ȡ������������Ȥ߹��ळ�Ȥ��餤���Ǥ�ʤ��ΤǤ�����

  • Sea Surfers ML:0000021 Re: CSSXSS�ˤĤ������ò¤·¤Æ¤ï¿½ï¿½Ê¤ï¿½ï¿½Ã¤ï¿½ï¿½ï¿½ï¿½Í¤Ç¤ï¿½, Kanatoko, 2006ǯ3��31��

    > �����Ǥ��͡����Τ�����ϴ��Фΰ㤤���Ȼפ��ޤ���
    > ����ε�ǽ����٤Ƥ��ޤ��Ȥ���äȥ���Ǥ�����
    > �ͤϤ�äѤ��󥿥���ˤ������ݤ���ͤ���ȡ�

    ��󥿥���ˤ�����Ͻ���2�ǥ��å���󥪥֥������Ȥ���ȡ����������
    ��ɬ�פ�����Τǡ��㤨��Java�ʤ󤫤���
    session.removeAttribute( "token" );
    ��ä��ʤ��Ȥ����ޤ���͡�

    ��1��¿���Ǥ��͡��������ݤǤ������ʾ�

�ʤ�����ʤ˴�ñ����ñ���ȸ�����Τ������� ���Ի׵Ĥ˻פ���Ȥ������פ���ˡ���餬��ĥ��������ϡ���7�Τ褦�������Ȥ������ȤǤ��롣

��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}'/>"; 

  • Sea Surfers ML:0000023 Re: CSSXSS�ˤĤ������ò¤·¤Æ¤ï¿½ï¿½Ê¤ï¿½ï¿½Ã¤ï¿½ï¿½ï¿½ï¿½Í¤Ç¤ï¿½, Kanatoko, 2006ǯ3��31��

    > 2���̰ʾ峫����Ƥ��ޤä����μ����ƤȤ���
    > ��ä�ʣ���ʵ����ʤ�Ȥʤ����Ƥޤ�����

    ���餷�ޤ������䤬�ְ�äƤޤ�����

    ����Ŧ�ɤ���2���̰ʾ�ξ����θ���뤿�ᡢ��󥿥���ȡ����������ϼº�
    �ˤϥȡ������̾���⤽�줾��ε�ǽ���Ȥ��̤Τ�Τ����Ѥ�����������Τ���
    �����Ǥ���

    �Ĥޤ��������񤯡פΥȡ������token1����������ä��פΥȡ������token2
    �ˤ��롢�ʤɤǤ��͡�

    �����ʤ�Ƚ���1�ڤӽ���2�ǡ֥ȡ������̾�������פȤ���������ɬ�פˤ�
    ��Τǡ������1�Ԥ�2�Ԥ��餤�������������Ǥ��������ݤ��ɤ����ϥ���Ǥ���
    ����

�ѿ���ǽ���Ȥ��̡��ˤ��Ƥ⡢Ʊ����ǽ��Ʊ���Խ��ϰ����Ȥ��ƤǤ��ʤ����ʥ��󥹥����ѿ���Ȥ��٤��Ȥ����˥��饹�ѿ���Ȥ��褦���äǤ��롣��

���̲����줿�к���ˡ���⤯���Ȥ�ɬ����

��ʬ�������Ȥ�Web���ץ���к������Ȥ��ˡ�Ʊ���Խ���ǽ�ˤʤ�����������ϼ�ͳ�������������Web���ץ��Ʊ���Խ������פǤ���С������к���ˡ����Ѥ��뤳�Ȥ�Ǥ����������

������Web���ץ���̤ˤ������к���ˡ���⤯�Ȥ��ˤϡ����ץ�δ����߷פ����¤�⤿�餹�褦�ʤ�ΤǤ����ܤ���

��5�μ�����ˡ��侩�Ǥ�����ä��ᤤ������˽Ҥ٤��褦�ˡ���ǰ�ʤ��餳�Υ��֥������Ȼظ����������Web���ץ�����Ϥ��ޤ���ڤ��Ƥ��ʤ�����3�μ�����ˡ���Ѥ��Ƥ�����Ǥ⡢��6���͡��ʼ�����ˡ�ξ��Ǥ⡢�ɤ�ʾ��ˤ�Ȥ����к���ˡ�򼨤������Ȥ�������

�Խ����Υ��󥹥��󥹤��Ȥ˥ȡ������Ѥε��������ݤ��褦�Ȥ���ȡ���6�μ��������ξ�硢�ּ��̥����ɡפ�¸�ߤˤޤ�Ƨ�߹�����������ʤ��ȡ�������γ�����ˡ�������Ǥ��ʤ����ҤȤĤ���ˤĤ��ƽ񤯤��ȤϤǤ��Ƥ⤽��Ϥ��٤ƤǤϤʤ���

�����ǡ������ƿ�7��������١����˲������뤳�Ȥ�ͤ��Ƥߤ롣���Ȥ��С����ο�8�Τ褦�ˤ���в��Ǥ����������

��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�ѥ�᥿��ϳ��䤹���Τ���

ü����Υ�줿�Ȥ����ɤޤ���ǽ����

�ɤ����ǿͤ���ˤϡ�hidden�ϴ�ñ���ɤ��פȤ����פ����ߤ�����餷����

  • �⤺�Ϥä�����, �ܥ�����¤�, 2005ǯ12��30��

    ��ά�˲��⡢�������ɲäξ����ݥ��Ȥ���ɬ�פ��ʤ����Ȥ�������ǤϤ��뤬��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�����å��Ѥ��Ѥ�����̩����θ���Ȥ��Ƥϡ�

  • ������ID
  • �ʥ��å����ID�Ȥ��̤Ρ˥��å����Ƕ��̤�1�Ĥ���������󥻥å����ID��
  • ������ID��ϥå���黻�������

�ʤɤ��ͤ�����Ȥ������������������ȥꥯ�����ȥե����������CSRF�ˤ��������к���ˡ�פǥ��å����ID�򤽤Τޤ޻Ȥ���ˡ��󤲤����Ȥ��Ф��ơ������Ĥ���Ƚ�����ä�����Ƥ���ͤ���Τϡ�������¦��֥饦�����ȼ����ˤ�ä�ϳ�̤��륱�����Ǥ��롣

�ޤ���ϳ�̤β�ǽ���Υѥ�������ȼ�����ʬ�ह��ȼ��Τ褦�ˤʤ롣

  1. cookie�⡢HTML�ƥ����ȡ�hidden�ѥ�᥿��ޤ�ˤ�ϳ����ȼ���
  2. cookie��ϳ��뤬��HTML�ƥ����ȡ�hidden�ѥ�᥿��ޤ�ˤ�ϳ��ʤ��ȼ���
  3. cookie��ϳ��ʤ�����HTML�ƥ����ȡ�hidden�ѥ�᥿��ޤ�ˤ�ϳ����ȼ���
  4. cookie��ϳ��ʤ�����hidden�ѥ�᥿��ϳ�졢����������ʳ���HTML�ƥ����Ȥ�ϳ��ʤ��ȼ���

���Τ���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����ζ��Ҥ����å����ϥ�����å�����Ȱۤʤ����κ��ϡ����å����ϥ�����å��ǤϸĿ;���ʤɤ�����Ǥ����礬����Τ��Ф���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������ʤ��ۤ����褤�פȤ�������������Ω�ġ�

���å����ϥ�����å����CSRF���������Ҥ��礭���ʤ����

���ˡ��֥��å����ID��ϥå��夷�Ƥ����Ф褤�ס֥ϥå��夷�ʤ���ꤷ�������褤�˷�ޤäƤ뤷�������Ȥ⤫����ʤ��Τ������äƤ����Ф����פȤ�����ĥ�����ä������Ϥ�������������������

��³����

*1 Web�ǥ����ʤ���������˷Ǽ��ĥץ�����ޤǤʤ���

*2 ï¿½ï¿½ï¿½ï¿½Ì©ï¿½ï¿½ï¿½ï¿½ï¿½Þ¤Þ¤Ê¤ï¿½COOKIE����ä��������������������ȼ����׻��ȡ�

������TrackBacks(��8��) [TrackBack URL: http://takagi-hiromitsu.jp/diary/tb.rb/20060409]

����: �Ȥꤢ������������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,...

��Τ������٤��ʤäƤ��ޤä��������ڻ��ȿ�����ɤޤ���ĺ������

...

�� [ abs+ ] (PukiWiki/TrackBack 0.3):Link/Security/CSRF (2009ǯ05��01�� 21:43)

Link/Security/CSRF ��&nbsp;��CSRF(�����������ȥꥯ�����ȥե���������) CSRF - �����������ȥꥯ�����ȥե��������� ���̤Ρ֤Ϥޤ������פ����߽Ф���CSRF���ȼ����Ȥϡ� CSRF Blog �����������ȥꥯ�����ȥե���������(CSRF)���������к���ˡ CSRF�ϡ֥�������...

����

<��������(2006ǯ04��02��) ��������(2006ǯ04��12��)> �ǿ� �Խ�

�Ƕ�Υ����ȥ�

2024ǯ12��07��

2024ǯ12��02��

2024ǯ11��24��

2024ǯ11��11��

2024ǯ07��28��

2024ǯ07��27��

2024ǯ07��07��

2024ǯ04��07��

2024ǯ04��01��

2024ǯ03��23��

2024ǯ03��19��

2024ǯ03��16��

2024ǯ03��13��

2024ǯ03��11��

2023ǯ03��27��

2022ǯ12��30��

2022ǯ12��25��

2022ǯ06��09��

2022ǯ04��01��

2022ǯ01��19��

2021ǯ12��26��

2021ǯ10��06��

2021ǯ08��23��

2021ǯ07��12��

2020ǯ09��14��

2020ǯ08��01��

2019ǯ10��05��

2019ǯ08��03��

2019ǯ07��08��

2019ǯ06��25��

2019ǯ06��09��

2019ǯ05��19��

2019ǯ05��12��

2019ǯ03��19��

2019ǯ03��16��

2019ǯ03��09��

2019ǯ03��07��

2019ǯ02��19��

2019ǯ02��11��

2018ǯ12��26��

2018ǯ10��31��

2018ǯ06��17��

2018ǯ06��10��

2018ǯ05��19��

2018ǯ05��04��

2018ǯ03��07��

2017ǯ12��29��

2017ǯ10��29��

2017ǯ10��22��

2017ǯ07��22��

2017ǯ06��04��

2017ǯ05��13��

2017ǯ05��05��

2017ǯ04��08��

2017ǯ03��10��

2017ǯ03��05��

2017ǯ02��18��

2017ǯ01��08��

2017ǯ01��04��

2016ǯ12��30��

2016ǯ12��04��

2016ǯ11��29��

2016ǯ11��23��

2016ǯ11��05��

2016ǯ10��25��

2016ǯ10��10��

2016ǯ08��23��

2016ǯ07��23��

2016ǯ07��16��

2016ǯ07��02��

2016ǯ06��12��

2016ǯ06��03��

2016ǯ04��23��

2016ǯ04��06��

2016ǯ03��27��

2016ǯ03��14��

2016ǯ03��06��

2016ǯ02��24��

2016ǯ02��20��

2016ǯ02��11��

2016ǯ02��05��

2016ǯ01��31��

2015ǯ12��12��

2015ǯ12��06��

2015ǯ11��23��

2015ǯ11��21��

2015ǯ11��07��

2015ǯ10��20��

2015ǯ07��02��

2015ǯ06��14��

2015ǯ03��15��

2015ǯ03��10��

2015ǯ03��08��

2015ǯ01��05��

2014ǯ12��27��

2014ǯ11��12��

2014ǯ09��07��

2014ǯ07��18��

2014ǯ04��23��

2014ǯ04��22��

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|06|07|08|09|
2013|01|02|03|04|05|06|07|
2014|01|04|07|09|11|12|
2015|01|03|06|07|10|11|12|
2016|01|02|03|04|06|07|08|10|11|12|
2017|01|02|03|04|05|06|07|10|12|
2018|03|05|06|10|12|
2019|02|03|05|06|07|08|10|
2020|08|09|
2021|07|08|10|12|
2022|01|04|06|12|
2023|03|
2024|03|04|07|11|12|
<��������(2006ǯ04��02��) ��������(2006ǯ04��12��)> �ǿ� �Խ�