ratproxy�\�\Web�A�v���P�[�V�����̃Z�L�����e�B���x�������؂���Google�񋟃c�[���FPrograming Bible�i1/2 �y�[�W�j

���Google���烊���[�X���ꂽ�v���L�V�^�̐Ǝ㐫�����c�[���uratproxy�v�B���x�ɕ��G�������ŋ߂�Web�A�v���P�[�V�����̃Z�L�����e�B�������s���ۂɖ𗧂“��c�[�����g���Ă݂��B

» 2008�N08��14�� 12��52�� ���J
[Keith-Winston�COpen Tech Press]
SourceForge.JP Magazine

�@Web�A�v���P�[�V�����J���҂ɂ��Z�L�����e�B���x���̌��؍�Ƃ��T�|�[�g���邱�Ƃ�ړI�Ƃ��āAratproxy�ƌĂ΂��I�[�v���\�[�X�^�c�[�������Google���烊���[�X���ꂽ�B�����Web2.0�����AJAX�A�v���P�[�V������Ώۂɍ\�z���ꂽ��j��^�̌����c�[���ł���A�Z�L�����e�B��̖��_���“ǐ��ɗD�ꂽ�`���Ń��|�[�g�����悤�ɂȂ��Ă���B

�@ ratproxy�̎��̂́A�茳��Web�u���E�U�Ǝ����Ώۂ̃A�v���P�[�V�����Ƃ̊Ԃɉ�݂���`�œ��삷�郍�[�J���v���O�����ł���B���̓��쌴���́A�A�v���P�[�V��������o����郊�N�G�X�g�ƕԂ���郌�X�|���X��ǐՂ��A�������ɓƎ��ɕϊ������g�����U�N�V������K�p���邱�ƂŁA��ʓI�ȍU���ɑ΂��ē��Y�A�v���P�[�V�������ǂ̂悤�Ȕ��������邩�����؂���Ƃ����V�X�e���ɂȂ��Ă���B�Ⴆ�΃��[���x���e�X�g�ł́A��L�̂��̂��܂߂���I�Ȏ��������{�����B

  • ���ݓI�Ȋ댯����L��JSON���̃��X�|���X
  • �铽���̍����R���e���c�ɑ΂��ėL�Q�ȃL���b�V���O�w�b�_
  • �^�킵���N���X�h���C���̐M���֌W
  • �s�\����XSRF�΍�Ɋ֌W����N�G��
  • �^�f�Ȃ����m�؂̂���XSS����уf�[�^�����x�N�^

�@���̂ق��ɂ������̎��������{����邪�A���̂��ׂĂ̓p�b�P�[�W�ɓ������ꂽmessages.list�Ɉꗗ�����悤�ɂȂ��Ă���B

�@ratproxy�̃p�b�P�[�W�̓\�[�X�R�[�h�Ɗ֘A�h�L�������g�ō\������Ă��邪�A���̂ق���flare-dist�ƌĂ΂��Adobe Flash�R���e���c�����p�̃I�v�V�����R���|�[�l���g��1�Š܂܂�Ă���B�܂��W���I��Make�t�@�C������������Ă��邪�A�ݒ�X�N���v�g�͗p�ӂ���Ă��Ȃ��B���̃v���O�������r���h����ɂ́A�ʏ�̎菇�ɏ]����make�����s����΂����B

$ make cc ratproxy.c -o ratproxy -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE http.c mime.c ssl.c -lcrypto -lssl *** WARNING: flare-dist/flare bianry is not operational. *** Please see flare-dist/README and update it for your OS.


�@�����ł̎��s��ł͌x�����b�Z�[�W���o����Ă��邪�A�����Mac OS X��ŃR���p�C�������݂��̂ɁA�p�b�P�[�W���ɗp�ӂ����Flash�����p�R���|�[�l���g��flash-dist��Linux�o�[�W�����ƂȂ��Ă��邽�߂ł���B���ہA����킽�����s���e�X�g�ɂ͕s�v���������AOS X�Ή��ł�flash-dist���p�ӂ���Ă���B���������R���p�C�����ʂƂ��Đ��������̂��Aratproxy�Ƃ����P��̃o�C�i���t�@�C���ł���B

�@ratproxy���ŏ��Ɏg�p����ꍇ�́A�X�^�[�g�A�b�v�p�ɐ������ꂽ�p�����[�^�Q�����̂܂܎g�p����̂���Ԃ���y�ł���B���̂���-d�p�����[�^�͓���h���C����URL�Q�ɑ΂��Ă̂ݎ��������s������w��ŁA����ɂ��摜��L���T�C�g�ɂ‚��Ẵ����N��͎����͈̔͊O�Ƃ����B������-v�p�����[�^�̓g���[�X�t�@�C���̏������ݐ���w�肵�A-w�p�����[�^�̓��O���R�[�h�̏������ݐ���w�肷��ۂɎg�p����B��҂̃��O���R�[�h�́A�ڍ׃��|�[�g�̍쐬���Ɏg�p�������̂ł���B

$ ./ratproxy -v /tmp/ -w ratlog.txt -d mydomain.com -lfscm ratproxy version 1.51-beta by [*] Proxy configured successfully. Have fun, and please do not be evil. [+] Accepting connections on port 8080/tcp �ilocal only�j...


�@ratproxy�ɂ͔�j�󃂁[�h�ȊO�̎����I�v�V�������p�ӂ���Ă��邪�A�X�^�[�g�A�b�v�p�̐����p�����[�^�ݒ�𗘗p�����ꍇ���̋@�\�͗L��������Ȃ��B�Ȃ���̏o�͗�ɂ��o����Ă���gAccepting connections�h��ratproxy�����[�J���ɂĎ��s���ł��邱�Ƃ��������b�Z�[�W�ŁA���̏ꍇ�̓f�t�H���g�|�[�g��8080���g�p����Web �u���E�U�ڑ��ɑ΂��郊�X�j���O�����{�����B

�@����Web�u���E�U���N�����āA127.0.0.1:8080�����ratproxy�Ƃ̐ڑ��ݒ���{���B�����Ċe���̊J�������A�v���P�[�V�������Ăяo���A�ʏ�s���͂��̑���菇�����{���邱�ƂɂȂ邪�A���̍ۂɂ͂��ׂĂ̍\���y�[�W�ɃA�N�Z�X���āA���ׂĂ̋@�\�����s���Ȃ���΂Ȃ�Ȃ��Bratproxy�͂����������Y�A�v���P�[�V�����̑��쒆�ɁA�K�v�Ȏ��������{���Ă����B�A�v���P�[�V�����ɑ΂��邷�ׂĂ̑��삪����������u���E�U��‚���΂������Aratproxy���~������ɂ�Ctrl-C�̃L�[���삪�K�v�ł���B

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright © 2010 OSDN Corporation, 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