��ʂ́u�͂܂������v�𐶂ݏo����CSRF�̐Ǝ㐫�Ƃ́H

�umixi�v��ŁA����URL���N���b�N����Ɓu�ڂ��͂܂������I�v�Ƃ������L������ɃA�b�v����Ă��܂��Ƃ������ۂ����������B���̌�����CSRF�̐Ǝ㐫���B

» 2005�N04��23�� 05��04�� ���J
[�����r���CITmedia]

�@4��19���ȍ~�A�\�[�V�����E�l�b�g���[�L���O�T�C�g�́umixi�v�ŁAURL���N���b�N����Ə���Ɂu�ڂ��͂܂������I�v�Ƃ����^�C�g���œ��L���A�b�v����Ă��܂��Ƃ������ۂ����������B

�@�T�[�r�X��񋟂��Ă���C�[�E�}�[�L�����[�ł́A���̌��ۂɂ‚��Ĉꉞ�̑Ώ��͎�����͗l���B�����A�Z�p�I�ȏڍׂɂ‚��Ắu�n�b�L���O�ł��Ȃ��A�T�[�o�U����E�C���X�ł��Ȃ��BID����Ȃǂ̔�Q�͔������Ă��Ȃ��v�Ƃ����񓚂݂̂ŁA�u����ȏ�̓R�����g�ł��Ȃ��v�Əq�ׂ�ɂƂǂ܂��Ă���B

�@��������Ӗ��A���̃R�����g�͐������B�u�͂܂������v���ۂ́A�E�C���X�Ȃǂ̎d�Ƃł͂Ȃ����炾�B

���K���[�U�[�̑���Łu�Ӑ}���Ȃ��v���ʂ�

�@URL���N���b�N����Ə���ɓ��L���������܂�邱�̌��ۂ̌����́AWeb�A�v���P�[�V�����̐Ǝ㐫�̈��ł���u�N���X�T�C�g���N�G�X�g�t�H�[�W�F���iCross Site Request Forgeries�FCSRF�j�v�ɂ����̂��B�O������̍U����E�C���X�ɂ����̂ł͂Ȃ��AWeb�A�v���P�[�V�����̎����ɋN��������ł���B

�@�O�䕨�Y�Z�L���A�f�B���N�V������Web�A�v���P�[�V�����̃Z�L�����e�B�����Ɍg����Ă����������V�����瓾��ꂽ�R�����g�ɂ��ƁACSRF�Ƃ́u����̋@�\�����s����Ƃ���HTTP���N�G�X�g�iURL��K�v�ȃp�����[�^�Ȃǁj���U���҂������”\�ȏꍇ�ɁA�U���҂ɂ���ėU�����ꂽ���[�U�[���A�Ӑ}�ɔ����Ă��̋@�\�����s�������Ă��܂��v�Ƃ����Ǝ㐫���BIPA��JPCERT/CC��4��19���ɍs�����A2005�N��1�l�����̐Ǝ㐫�͏o�󋵂Ɋւ����������ł����y����Ă����B

�@�u�N���X�T�C�g�v�Ƃ����P�ꂾ��������΁AWeb�A�v���P�[�V�����̐Ǝ㐫��1�‚Ƃ��čL���m���Ă���u�N���X�T�C�g�X�N���v�e�B���O�iXSS�j�v���A�z�����B�m���ɁACSRF��XSS�ɂ͋��ʓ_������B�������Web�A�v���P�[�V���������p���A�T�[�o����ă��[�U�[����Q��ւ��Ă��܂����Ƃ��B

�@�������������ɂ��ƁAXSS�ł͓��͒l�̖��`�F�b�N��T�j�^�C�W���O�R��Ƃ������A�v���P�[�V�����́u�s���v���_����̂ɑ΂��ACSRF�ł̓A�v���P�[�V������������u�@�\�v���̂��̂����p�����Ƃ����B���K���[�U�[�����O�C�����Ă����ԂŁA�A�v���P�[�V�����������鐳�����@�\��p���āu�Ӑ}���Ȃ����ʁv�������炳���킯���B

�@�u�͂܂������v�����̏ꍇ�A���[�U�[�͊���mixi�Ƀ��O�C��������Ԃɂ���B�����ʼn��̋^�����������ɁA�G���R�[�h���ꂽ������ƃR�}���h���d���܂ꂽ�i����ǁu�������ʔ������v�Ǝv�킹������t���́jURL���N���b�N����ƁA����ɓ��L���lj�����Ă��܂��B�Ƃ����̂��A�N���b�N�����{�l�ɂ͂��̂‚��肪�Ȃ��Ƃ��AWeb�T�[�o�����猩��΁A���O�C���ς݂̐��K���[�U�[�����L���������ނ��߂̃R�}���h��v�������̂Ɠ������Ƃ����炾�B������f�闝�R�͂Ȃ��B

͂܂ �^�ҏW�������u�͂܂������v�ɂЂ�������A���L���X�V����Ă��܂����c�c

�@mixi�ł͂�������Ώ������ꂽ�悤�����A���̌�AJavaScript���d���񂾕ʂ�Web�T�C�g��g�ݍ��킹�ē��l�̌��ʂ������炷�d�|�����o�ꂵ�A�΍�Ƃ̂������������ɂȂ��Ă���B

�@�u�͂܂������v�̏ꍇ�AURL���N���b�N����Ə������܂����L�̖{���ɂ���Ɂu�d�|���v��URL���܂܂�Ă������߁A��Q�҂͘A���I�ɍL�������B�u�A���I�ɍL����v�Ƃ�����������������΃��[���Ɏ������ۂ����A���{�I�Ȍ�����Web�A�v���P�[�V�������̍��ɂ���B

�@�‚܂�CSRF��mixi�Ɍ��������ł͂Ȃ��A���̃T�[�r�X��c�[���AWeb�A�v���P�[�V�����ł��\���ɋN���肤�邱�Ƃ��B�����A�u���O�T�[�r�X�́u�͂Ăȃ_�C�A���[�v�ł�CSRF��肪�m�F����A2004�N9�����C������Ă����B

�@�������uCSRF�ɂ���Q�́A�U���҂ɂ���Ď��s��������@�\�̏d�v�x�Ɉˑ����A�d�v�ȃT�C�g�ł���΂���قǑz�肳����Q���傫���Ȃ�v�i�������j�B����͂��܂��ܓ��L�̍X�V�Ƃ������ʂɂƂǂ܂������A�I�����C���V���b�s���O�T�C�g�Ȃǂň��p�����΁A���K��Q��l���̗��o�Ƃ��������Q��������ł��낤���Ƃ͗e�Ղɑz���ł���B

�΍�́u�U���҂ɂ�鐄��������ɂ��邱�Ɓv

�@�ł́A�ǂ�����Ζ���h����̂��B���{�I�ȑ΍�́A����Web�A�v���P�[�V�����̐Ǝ㐫���l�A�T�[�r�X��c�[����񋟂��鑤�̑Ώ��ɂ������Ă���B

�@�������ɂ��ƁA�uCSRF�̖��_�́w�@�\�����s���邽�߂�HTTP���N�G�X�g�������ł��Ă��܂����Ɓx�v�B�t�Ɍ����΁A�U���҂ɂ�鐄��������ȃp�����[�^��HTTP���N�G�X�g�Ɋ܂߂邱�Ƃʼn����ł���Ƃ����B

�@���Ƃ��΁A�\�����ɂ����Z�b�V����ID��p���Ă�����ƃZ�b�V�����Ǘ����s�����ƂŁACSRF�̃��X�N�����炷���Ƃ͉”\���낤�B�������ɂ��΁u�����^�C���g�[�N���̗��p�v���L���Ȃق��A�u�d�v�ȏ������m�肳����ۂɍĔF�؂��s���v���@�����������Ƃ����B�‚܂�A���i�w���A���ςȂǂ̏d�v�ȑ�����m�肳����O�ɕK��ID�ƃp�X���[�h����͂����邱�ƂŁACSRF�ɂ��U���͍���ɂȂ�Ƃ����B

�@�Ȃ��uHTTP Referer���`�F�b�N����Ƃ������@���l�����邪�A���ɂ�HTTP Referer���o�͂��Ȃ��u���E�U�����݂���v�i�������j���߁A�O�q�������@�����������Ƃ������Ƃ��B

�@������ɂ��Ă��A�ǂꂩ1�‚̕��@��CSRF�Ɋ��S�ɑΏ�����͓̂���B����Web�A�v���P�[�V�����̐Ǝ㐫�Ɠ��l�A�T�d�ɐ݌v���A�������Ă������Ƃ��d�v���낤�B

�@���[�U�[���ɂł��邱�Ƃ͂��邾�낤���H�@���܂߂Ƀ��O�C���A���O�A�E�g���s���΁A�O��URL�ւ̃����N��p����CSRF�U������g����邱�Ƃ��ł����������Amixi�̂悤�ɓ����Ŏd�|������ꍇ�͖h���悤���Ȃ��B

�@�u�͂܂������v�ɂЂ��������Ă��܂����^�ҏW�������킭�A������URL�Ɍ��������̂́u���[�U�[�ǂ����̐M��������r�I����mixi������A���[�U�[�̌l�X�y�[�X���g�����g���b�v�ɂ͂Ђ�������₷���̂ł́v�Əq�ׂĂ���B�c�O�Ȃ���A�R�~���j�e�B�̓��O���킸�A�s�R�ȃ����N�̓N���b�N���Ȃ����Ƃɐs����悤���B

�֘A�L�[���[�h

CSRF | �Ǝ㐫 | mixi�i�~�N�V�B�j


Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);

���ڂ̃e�[�}

���Ȃ��ɂ������߂̋L��PR