���������ή�̤�����Ҥ��ȼ��������롢�Ĥޤ�Ǻܤ���Ƥ��륵��ץ륳���ɤ˥��Х��ȼ���������Ȥ����ȼ����򻺤ߤ䤹�������ǥ��󥰥��������ȤˤĤ������Ƥ�����⤬���ꡢ���줬�ȼ�ʥץ�����ޤ�������³���뺬���ˤʤäƤ�������ϡ��֤ʤ�Ȥ����ʤ��Ȥ����ʤ��ͤ��פȰ�����������Ƥ�����
���եȥ��������ʤ��ȼ����ϡ���Ŧ������Хѥå����󶡤��줿�꽤���Ǥ˺����ؤ���줿�ꤹ�뤬�����Ҥ��ȼ����Ϥɤ���������ɽ���������ޤ��Ȥ�������������֤��Ȥ��뤫�Ȥ����ȡ������˾�᤽���ˤʤ��������ˤϸ������й�����Ф褤�Ȥ������Ȥˤʤ����������
�פ��֤�ˤ����Ĥ��ν��ҤˤĤ���Ĵ�٤Ƥߤ���������Ĥ���������ʤɤ����ŪɾȽ�ɤ��Ҳ𤵤�Ƥ���2�����ɤ����
��PHP�����Υĥܡפϡ֥����奢�ץ�����ߥ��ԡפ���äƤ�����ˡ������ʤ�ǽ�Υ���ץ륳���ɤ��餷�ƥ����������ȥ�����ץƥ����ȼ��������롣����(A)
<?php
$strdate = $_GET['strdate'];
echo <<<EOD
����ʸ��������Ϥ��Ƥ���������
<form>
<input type="text" name="strdate" value="{$strdate}">
<input type="submit" value="OK">
</form>
EOD;
if (!$strdate) {
�ʰʲ�ά��
����ͦ, PHP�����Υĥ� �����奢�ץ�����ߥ���, ��ŷ��, p.3
ư�����Ƥߤ�ȿ�1�Τ褦���ȼ�������ǧ�Ǥ��롣
p.158�ˤϤ���ʲ��⤬���롣����(B)
������ʸ����Ϻ������
����������Ф��Ƥϡ��ѿ� $filename ����˾�̥ǥ��쥯�ȥ�򼨤���../�פȤ���ʸ���󤬤��ä���硢Ŭ�ڤ��Ѵ����뤷������ޤ���
1�ĤϾ�̥ǥ��쥯�ȥ�����ʸ�������������ˡ�Ǥ���
$filename = $_GET["filename"]; // ��̥ǥ��쥯�ȥ������� $filename = str_replace("../", "", $filename);����ͦ, PHP�����Υĥ� �����奢�ץ�����ߥ���, ��ŷ��, p.158
�����ŵ��Ū�ˤ褯����ޤ����к�����
$filename = "----..././----"; $filename = str_replace("../", "", $filename); echo $filename;
�μ¹Է�̤ϡ�----../----�פ�ɽ������롣
������p.213�ˤϤ��ε��ҤȤ�����
���ѥ����Ȥʤɤ�SSL����Ѥ�����ϡ�����Ū��ǧ�ڶɡ�Certificate Authority:CA�ˤ�ȯ�Ԥ��줿���������Ѥ��ޤ���
���ѥ����Ȥʤɤ�ñ�˰Ź沽����Ū�����ʤ��ץ饤�١���CA��ȯ�Ԥ���������Ǥ����ꤢ��ޤ��������������ץ饤�١���CA��ȯ�Ԥ������������Ѥ����硢SSL�Ǥ���³���˥֥饦������ٹ��å�������ɽ������ޤ��ʿ�5�ˡ�
����ͦ, PHP�����Υĥ� �����奢�ץ�����ߥ���, ��ŷ��, p.213
�����������Ҥ�����������������Ƥ����Τ����������λ���ˡ�ʲ��Ȥ����櫓�ˤ⤤���ʤ����ġġ�
�⤦�����PHP�����С��ƥ��ε�ˡ��������ɸ�μº��Ϥɤ����Ȥ����ȡ�ȴ���ܤʤ��񤳤��Ȥ�����θ������졢�������ˤ��Ȥ褯�񤫤줿*2�ܤǤ��롣
�������������ʥץ�����ߥ󥰼�ˡ�Ȥ��������ǤϤʤ��������ޤǥ������ƥ��к����Ȥ��������ǽ񤫤�Ƥ���Ȥ��������꤬�Ĥ롣
���Ȥ��С�p.28�Υ����������ȥ�����ץƥ����ȼ������к������ɤ򸫤Ƥߤ롣����(C)
������ʲ��Τ褦�˽������ޤ���
while ( $row = mysql_fetch_array( $result , MYSQL_ASSOC ) ) {
echo '<p>' ;
echo 'No.'.$row['id'].'<br />' ;
echo '��̾:'.htmlspecialchars($row['title'],ENT_QUOTES).'<br />' ;
echo '̾��:'.htmlspecialchars($row['name'],ENT_QUOTES).'<br />' ;
echo '����:'.$row['postdate'].'<br />' ;
����
�����������ɤΰ㤤�ϰ����������Ȼפ��ޤ�������������Ƥγƥƥ����Ȥ����֥饦����ɽ�������ľ��*04�ˡ�htmlspecialchars(�ʥƥ����ȡ�,ENT_QUOTES)���̲ᤷ�Ƥ��ޤ������줬��HTML�����ѥ��˥������פǤ���
GIJOE, PHP�����С��ƥ��ε�ˡ��������ɸ�μº�, ������, p.29
����Τɤ����������Ȥ����ȡ���id�פȡ�postdate�פˤĤ��� htmlspecialchars ���̤��Ƥ��ʤ����Ǥ��롣
�������ˤ�����ȼ����ǤϤʤ����ץ����������Τ���������С���$row['id']�פ��ͤ����ͤ����Ȥ�ʤ����Ȥ��ǧ�Ǥ��������������$row['postdate']�פ��ͤ����դ�ɽ��ʸ���󤷤��Ȥ餺��HTTP�ꥯ�����Ȥ��͡�CGI���ϡˤ˰�¸���Ƥ��ʤ������ȤȤ������Ȥ��ǧ�Ǥ���Τ�������
���������Τ褦�ʳ�ǧ��Ȥ򤷤ʤ��������������ɤ��ɤ����狼��ʤ��褦�ʡ��ץ������ν����򤹤٤��Ǥʤ����������ƥ����������ˡ��ץ������γ�ȯ��ˡ���Ȥ��ơ��Ǥ�������ɽ�Ū�ʻ����ǥ����ɤ����������ǧ�Ǥ���褦�˽񤯤Τ�������ץ�����ߥ󥰤δ��ܤ����Ĥޤꡢ���Υ��������Ҥ������ơ����꤬�ʤ��Ȥ狼��褦�˽񤯤٤��Ǥ��롣�㤨�м��Τ褦�ˡ�����(D)
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo '<p>';
echo htmlspecialchars('No.' . $row['id']).'<br />';
echo htmlspecialchars('��̾:' . $row['title']).'<br />';
echo htmlspecialchars('̾��:' . $row['name']).'<br />';
echo htmlspecialchars('����:' . $row['postdate']).'<br />';
�����ǡ���'No.' �� '��̾:' �� '̾��:' �� '����:' �����ʸ����ޤ� htmlspecialchars ���̤��ʤ��̵�̤���ʤ����פʤɤȤ������Ȥ�ͤ��ƤϤ����ʤ������ޤɤ����������̱Ū�ץ�����ߥ��׹ͤ򤹤�Τϥץ�����࿦�ͤȤ����Ѥ����������Ȥ���
������HTML����Ϥ���Ȥ��ϡ����ν������Τ��Ф��ơ�<�ס�>�ס�&�פΥ��������׽����θ�Ƥ���׵ᤵ��Ƥ���ΤǤ��äơ�CGI���Ϥ˰�¸���Ƥ��뤫�ɤ�����̵�ط��Ǥ��롣�����ιͤ����ˡ�̵�Dz��פ��Ρ�̵�����פ��Ρ־��ǡפ��Ρ֥��˥������פ��Ρ֥��˥������󥰡פ��ΤȤ����ʺǶ�ή�ԤΡ�ȯ�ۤϽФƤ��ʤ���
HTML���Ϥ�񤯤Ȥ��ϡ��ष����������Ϥ������Ȥ��������㳰Ū�Ǥ���ȹͤ���Τ��褤�����Ȥ��С�echo ������Ū�˻��ѶػߤȤ��Ƽ��Τ褦�˽񤯤Τ�褤������������(E)
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { htmlout_tag('<p>'); htmlout('No.' . $row["id"]); htmlout_tag('<br />'); htmlout('��̾:' . $row["title"]); htmlout_tag('<br />'); htmlout('̾��:' . $row["name"]); htmlout_tag('<br />'); htmlout('����:' . $row["postdate"]); htmlout_tag('<br />');
������°����ʬ����Ϥ���Ȥ��ϼ��Τ褦�˽񤯡�
htmlout('����ʸ��������Ϥ��Ƥ���������'); htmlout_tag('<form>'); htmlout_tag('<input type="text" name="strdate" value='); htmlout_quote($strdate); htmlout_tag('>');
���Ѥ����ؿ�������Ϥ��Ȥ��Ф���ʴ�����*3��
function htmlout($str) { echo htmlspecialchars($str, ENT_NOQUOTES); } function htmlout_quote($str) { echo '"' . htmlspecialchars($str) . '"'; } function htmlout_tag($str) { echo $str; }
�����Υ����������ȥ�����ץƥ����ȼ������Ĥޤꡢ�Ǽ��ĤؤΥ����դ�ʸ����νñ¤¹ï¿½ï¿½ß¤ï¿½ï¿½ï¿½ï¿½ê¤¬ï¿½ï¿½ï¿½ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½ï¿½HTTP_USER_AGENT �⥵�˥��������ʤ��Ȥ����ʤ������פȤ������Ȥ��褯�����롣��Υ���ץ륳���ɤ� User-Agent ��ä���Ȥ���
echo 'No.'.$row['id'].'<br />' ;
echo '��̾:'.htmlspecialchars($row['title'],ENT_QUOTES).'<br />' ;
echo '̾��:'.htmlspecialchars($row['name'],ENT_QUOTES).'<br />' ;
echo '����:'.$row['postdate'].'<br />' ;
echo '�֥饦��:'.$row['useragent'].'<br />' ;
�Ȥ��������ɤ�ñ¤¤ï¿½ï¿½ï¿½ï¿½Ç¤ï¿½ï¿½ï¿½ï¤±ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ò¸«¤Æ¡ï¿½ï¿½ï¿½$row['user_agent'] �⥵�˥��������ʤ��Ȥ����ʤ������פȤ������Ȥˤʤ롣�к��ޥ˥����餹��С�
HTTP_USER_AGENT�äƤΤϤ͡������¦�ǥ֥饦���򤤤��äƾ�����Ѥ��������衼���ġ���Ȥ��ȤäƤ͡�HTTP_REFERER�⵶���Ǥ������������顢User-Agent: �Ȥ� Referer: �Ȥ������ȡ�X-Forwarded-For: �� Via: ��ͳ�褹���ѿ��⥵�˥��������ʤ��Ȥ����ʤ�����衼��
�ȡ��ϥå��������Ǹ�äƤߤ��������󥹤Ǥ���櫓����������ʤ��ȤϤɤ��Ǥ⤤����(E)�ν�����(D)�ν����ʤĤޤꡢ�����ʳ��ϰ�Χ���������������פ��ƽ��Ϥ�������ˤ򤷤Ƥ���С�����ʤ��ȤϤɤ��Ǥ�褤�Τ�*4��
�ǤϤʤ��������Ǥ���(C)�Τ褦�ʥ�������񤤤Ƥ��ޤ��Τ���3�Ĺͤ����롣1���ܤϡ���̱Ū�ץ�����ߥ󥰤�ȯ�ۡ�2���ܤϡ��ѻ��ʸ��ɤ�������äƤȤ������Ȥ������������
�ޤ�����htmlspecialchars�פȤ���̾����Ĺ��������򤢤������������ޤʤ��Ȥ����ʤ���ʸ����Ϣ�뤷�Ƥ���ʸ����ʬ��ʬ�� htmlspecialchars ������ơ�����ơ�����Ƥ����ʤ��Ȥ����ʤ������줬���Ƿ��Ǵ���ʤ��ץ�����ޤ�������Ǥ�֥������ƥ��к����ʤ��ȡġġפȤ������Ȥǻ����ʤ�ɬ��˺�Ȥ��Ƥ����ȡ�ɬ�׺Ǿ��¤ξ��ˤ��� htmlspecialchars �Ƚ񤯤��Ȥˤʤ꤬������
���η�̤Ȥ��Ʋ��������뤫�Ȥ����ȡ�������֥��˥�����ϳ��פ���������ܤ򻮤ˤ���õ���Ƥ�����Ȥ⡢�����ؤ�ʥ����Ȥ������뤳�Ȥˤʤ롣
��˵󤲤�(A)�λ����ˤĤ��ơ����������ȼ������Ŧ���줿�ܤ����ԤϤ���ȿ�����뤫�⤷��ʤ�����PHP�������ʤΤǡ��ޤ��� PHP�ˤ�� HTML form�δ���Ū�ʽ����������������������ǽ餫�餽���餸�夦�� htmlspecialchars �Ȼ���Ф᤿�ΤǤϡ��ɼԤ��Ĥ��Ƥ��ʤ��ʤäƤ��ޤ����������ƥ��к�����ˡ�ϸ�Ⱦ�ǽ񤤤Ƥ���Τ����顢����Ǥ褤�Τ��ġġפȡ�
���¡�2002ǯ�ˡ�����@IT��âµï¿½ï¿½ï¿½ï¿½ï¿½È¼ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Å¦ï¿½ï¿½ï¿½ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½Ø·ï¿½ï¿½Ô¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½
�����μ�ݤϥ����Х����ɥ��ץꥱ�������ν��Ķ��ξҲ�����Ȥ��Ƥ���ޤ����Ȥ�λ�򤤤������ޤ��ȹ����Ǥ�
�Ȥ�����������������Ȥ����롣�ޤ�Ʊ���������οͤ��ñ¤¤¤Æ¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ò¤Ë¤Ä¤ï¿½ï¿½Æ¡ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½É¤ï¿½ï¿½ï¿½ß¤ï¿½ï¿½ï¿½ï¿½È°ï¿½ï¿½ê¤µï¿½ï¿½ï¿½ï¿½É¤Þ¤ï¿½ï¿½Æ¤ï¿½ï¿½Ã¤ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ï¤ê¡¢SQL�λȤ�����Ҳ𤹤�ϤΥ���ץ륳���ɤ������SQL���󥸥���������ȼ����Τ���°פʽ����ˤʤäƤ��ơ��֤����������������褦��פȸ��ä����Ȥ�����Τ��������Ԥϡ��֤�����SQL�λȤ�����狼�äƤ�餦���������;ʬ�ʥ����ɤ����줿���ʤ��פȼ�ĥ���ơ�����Ū�ʽ�ľ���Ϥ��ʤ��ä������սñ¤¤ï¿½Åºï¿½ï¿½ï¿½ï¿½ì¡¢ï¿½ï¿½ï¿½ï¿½Î¾Ï¤Ë¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Æ¥ï¿½ï¿½Ðºï¿½ï¿½Î¾Ï¤ï¿½ï¿½Õ¤ï¿½ï¿½Ã¤ï¿½ï¿½ë¤³ï¿½È¤ï¿½ï¿½Ð½è¤µï¿½ì¤¿ï¿½Ë¤È¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½Ã¤ï¿½ï¿½ï¿½
���Τ褦�ˡ������ɤθ����ܤ��ѻ��ˤʤ뤳�Ȥ��ץ������ã�˷����Ƥ��ơ��ä˲����ܤ����Ԥ��Ҥɤ����äƤ��뤳�Ȥ��狼�뤬�����줬�ȼ�ץ�����ޤ����������븶���ȤʤäƤ��롣
������3���ܤθ��������֥��˥������פȤ������դ��°פ�ή�Ԥꤹ���Ƥ��뤳�Ȥ������Ǥ��롣
�֥��˥������פȤ����Τϡ���̵�����פȤ�����̣�θ��դǤ��뤳�Ȥ������餫�ʤ褦�ˡ������ޤǤ�֥������ƥ��к��פȤ��Ƥ�ʸ̮�Ǥ�������ʤ�����������ȡ���CGI���ϤΡʤ˰�¸�������ѿ��ϥ��˥���������פȤ�������������ˤʤäƤ��ޤ������줬�������ץ�����ߥ󥰥���������Ĺ���ƺ��롣
�����������Ƥ��ѿ��򥨥��������оݤȤ��褬���ܤǤ��뤷���ѿ���������ʤ��Ƽ����Τ򥨥������פ��оݤȤ���٤��ʤΤˡ��֥��˥������פȤ������դǶ��餬�Ԥ��Ƥ���ȡ����ιͤ����˻�뵡�񤬻�����Ƥ��ޤ���
�����顢�����˥������������פʤΤ���
�����ܤ����ԤˤȤäơ��ѻ��ʥ����ɤϤ����Ǥ����򤱤����Ȥ������������������Τ��Ȥ�֥��˥������פȤ������դ����򤷤Ƥ���ȡ��ܼ�Ū��ɬ�פʽ����Ȥ��ƤǤϤʤ����֤����ޤǥ������ƥ��к��Ȥ���ɬ�פʤ���פȤ������ä�����򤷤Ƥ��ޤ������������η�̡��֥���ץ륳���ɤǤ��ȼ�ʤޤޡ���β���ǥ������ƥ��к��Ȥ��ƶ�����פȤ��������ˤʤäƤ��ޤ���
���μ�ν��������������ƥ��к������˸����ܼ�Ū��ɬ�פʽ�����SQLʸ�������륳���ɤǤϸ������ɬ�פʽ����Ǥ��뤷��HTML����Ϥ��륳���ɤǤϸ������ɬ�פʽ����ˤǤ��뤳�Ȥϡ����Ȥ��С����λ���򸫤�����餫�Ǥ�������
[Q]
��ư���˲����Υ��顼��ȯ�����롣
�ֹ�1:��XXXX�Ǥζ᤯�������ʹ�ʸ������ޤ���
ʸ�����)�Ǥ����������䤬�Ĥ��Ƥ��ޤ�����
state:37000��Native:170
state:37000��Native:105����ʸ���ֹ��763 �ڹ�������2003/08/12
���оݾ��ʡ�����21���꡼�������ʡ�����2000���꡼��������
[A]
��������ͳ����ԥ塼����̾�ˡ֡� ���󥰥륯�����ơ������פ��ޤޤ�Ƥ������ȯ�����ޤ���
�������н���ˡ
����ԥ塼����̾�ˡ֡� ���󥰥륯�����ơ������פ���Ѥ��ʤ��褦�ˤ��Ʋ�������
����
����ϥ��������ư�����եȥ������ΥХ����äʤΤǡ��������ƥ��ȼ����Ȥϴط����ʤ����ᡢ���Τ褦���н���ˡ�����⤵��Ƥ���Τ����������Τ褦�ˡ��������ƥ��Ȥ�̵�ط��ʤȤ����Ǥ⡢SQLʸ��������Ȥ��ˡ�'�פǰϤ����˼��ʾ�ξ��ϡ֥���ԥ塼��̾�סˤ�������Ȥ��ˤϡ�����ɾ�������Ρ�'�פ򥨥������פ�������ϡ����������Τ��ȤȤ���ɬ�פʤΤ�������ϡ������Ȥ���SQL�λȤ�������⤹����̤ǡ����ֺǽ��á������٤����ȤǤ��롣�������ƥ��Ȥ�������Ф��ޤǤ�ʤ���
SQLʸ��HTML�����Ǥʤ���ʸˡ�����ʸ������̤�ʸ����Ϣ�����������Ȥ��ˡ��������ä�������ɬ�פȤʤ뤳�Ȥ򡢥ץ�����ߥ󥰰��̤򶵤���Ȥ����θ������Ƥ����٤����⤷��ʤ���
11��22��������������Ի����ǤϤʤ���ȯ�Ի����Ǥβ�����פ���Ƚ��������Ϣ�ܵ����Ǥ⡢���˥������Ȥ������դ��Ǥ���Ƥ����ͻҤ����������Ƥ�����
�����奢�ץ�����ߥ󥰤θ³�
Web���ץꥱ���������ȼ��������߽Ф��ʤ�����ˡ�Web���ץꥱ�������ȯ�Ԥδ֤Ǥϥ����奢�ץ�����ߥ󥰤Ȥ�����ǰ����Ʃ���Ƥ��ä������γ�ǰ�ˤϡ������奢�ʥץ�������������뤿��Τ������������ޤޤ�Ƥ��뤬���褯�����뤳�Ȥ��桼������������ϥǡ����򤽤Τޤޥץ������˼����Ϥ��ΤǤϤʤ�������ɬ��������ȡʥ��˥������󥰡ˤ�Ԥ��Ȥ����ͤ����Ǥ�����
�㤨�С��ץ������䥳�ޥ�ɤǰ�̣����ĥ᥿����饯���ʥ᥿ʸ����\��[��]��|��$��*�ʤɡˤ����Ϥ�ػߤ�������ɽ���ˤ�����ʸ����Υѥ��������ꤹ�뤳�Ȥˤ�ä����ϥǡ����ξ�����Ԥ���
Web���ץꥱ�������ե��������������ɬ���� ��1�� ��̩����˹�ˡŪ�˶�Ť���Web���ץꥱ����������, @IT, 2005ǯ8��17��
�����奢�ץ�����ߥ󥰤������뤫����㤨�Ƥ���Τ����顢�֥����奢�ץ�����ߥ󥰤θ³��פʤɤȤ������ä�����ˤ��ɤ��夤�Ƥ��롣�֥��˥������פȤ�����ǰ�Ϲ���Ի�����ȯ�ۤǤ��ꡢ����Ի������к���ͤ��Ƥ���ȡ�����Ի����ǤϤʤ���ȯ�Ի����Ǥβ�����פǼ������褦�ʡ����ä��к���ˡ��Ƴ���Ƥ��ޤ����ͤʤ���
��˵󤲤�(B)�λ����ˤ⡢�֥��˥������פȤ���ή�Ը�γ��������롣
�ִ�����ʸ�������������פȤ���ȯ�ۤ򤹤뤳�Ȥ��ְ㤤�ʤΤ������֥��˥������פȤ������դ���ϡֺ���פȤ����Ѵ��פȤ����к���Ϣ�ۤ����䤹����
�ѥ�̾�������뤳�Ȥ����ꤷ���ѥ�᥿�ˡ�../�פ��..\�פ��ޤޤ�Ƥ����顢����Ȥ��Ѵ��򤹤�ΤǤϤʤ������顼�Ȥ����㳰�������ƽ�λ����Ȥ����Τ�������Τ��Υץ�������������ư�������*5��
�֥��˥���������פȤ����к���ȯ�ۤˤϡ������Ѱդ˥ץ������ε�ư���Ѥ��ƤϤ����ʤ��פȤ����طʤ�����褦�˻פ��롣�Ĥޤꡢ���˲�Ư��Υ����ƥ���Ф����ȼ���������Ԥä��Ȥ����ȼ��������Ĥ���ȡ��ץ�������¾����ʬ�˱ƶ���Ϳ���ʤ��褦�ˡ��Ǿ��¤��ѹ����ȼ������ӽ��������ȹͤ�����������֡����ΤȤ��ϥץ�������λ�פʤɤȤ����礽�줿�ץ������ΰ�̣���ѹ����к������»ܤ���٤��Ǥʤ��Ȥ����ͤ����������롣���Τ褦�ʹͤ��˴�Ť��ȡ�CGI�������ʳ��Ǻ���������Ѵ�����Ȥ������Ȥˤʤ롣���줬�������Ρ֥��˥������פȤ������դ��ä��Ϥ�������ΰ��Ѥˤ��ä���
�桼������������ϥǡ����򤽤Τޤޥץ������˼����Ϥ��ΤǤϤʤ�������ɬ��������ȡʥ��˥������󥰡ˤ�Ԥ��Ȥ����ͤ����Ǥ��롣
Web���ץꥱ�������ե��������������ɬ���� ��1�� ��̩����˹�ˡŪ�˶�Ť���Web���ץꥱ����������, @IT, 2005ǯ8��17��
�Ȥ������Ҥϡ��ޤ��ˤ��������֥��˥������פ�ȯ�ۤǽ񤫤�Ƥ��롣
��¸�Υ����ƥ�˱��޼����Ȥ��Ƥ��Τ褦���к��򤹤���̤ǤϤ���Ǥ�褤���֥��˥���������פȸ��ä������������������줫�鿷���˳�ȯ���륷���ƥ�ˤ����륻���奢�ץ�����ߥ󥰤���Ȥ��ˡ��֥��˥������פȤ������ΤϤ⤦��᤿��ɤ�����
��äȤ⡢��������ȼ��������뤫�⤷��ʤ����Ȥ����ꤷ�Ƥ��ݸ��Ȥ��ơ�CGI�������ʳ��ǥѥ�᥿����������ʥ��˥���������ˤ��Ȥˤϻ��������Ȥ��ˡ����楳���ɤϥ��˥��������Ƥ��ޤ����Ȥ�Ƥ���������褤���⤷��ʤ��ʿ��˲��ԥ����ɤ����Ϥ�ɬ�פȤ�����ʬ�Ǥϡ����ԥ����ɤϺ��ʤ����ˡ�����������Ϥ���ʤΤǤ��äơ������㺮���ˤ��ƤϤ����ʤ�����������������ץ��������ˡ + ������Τ�����ݸ��Ȥ��ƤΥ��˥����������פȤ����������˿�������٤��Ǥ��롣
�֥��˥������פȤ����������������Ѹ�Ǥ��뤫�Τ褦�ʹ���ɺ�������Υ������ʲ����줿͢����ϡ��ȤƤ�°פ˻Ȥ��ư��ٻȤ��Ȥ����ʤ������Τ褦�ʸ��դʤΤǡ������奢�ץ�����ߥ󥰤��ܼ������򤷤Ƥ��ʤ��ǿ��к����ʤĤޤꡢ�ȼ��������ηи��Ϥ��äƤⳫȯ�ԤȤ��Ƥηи����ʤ��褦�ʿ͡ˤǤ⡢�֤��줵�������˥��������Ƥʤ��Τ������ʤ������͡��פȡ����Τ��Ǹ�äƤߤ��뤳�Ȥ��Ǥ��Ƥ��ޤ���
������󡢡֥��˥������פ�֥��������ספ˸���������ʤɤȤ����Τ�Ķ��ְ㤤�����ºݡ��ɤ����ä����ǡ��ѥ�̾�ѥ�᥿�Ρ�../�ץ����å����к�����⤹��ʸ��ǡ�
��../�פ��..%2F�פ˥��������פ��ޤ��礦��
�ʤɤȤ�����Τ򸫤����������뤬��Ķ��ְ㤤����
�Ȥꤢ�����֥��˥������פ�֥��������ספ���ˤ��ʤ��褦�ˤ��Ƥߤ���褤�����˥������Ȥ������դ�Ȥ鷺�˼�ʬ�������������Ȥ�ɽ�����褦�Ȥ��Ƥߤ��餤�����������������뤳�Ȥκ��񤫤�ƨ���褦�Ȥ���ʡ��Ȥ������Ȥ���
ERB��Web�ڡ����˻Ȥ��Ȥ��������������ȥ�����ץƥ����ȼ����Τʤ��褦�˽񤯤ˤϡ� ��<%=h ... %> �פȤ�����ˡ��Ȥäơ����ʤɤΤ褦�˽񤯡�
No. <%= row["id"] %><br /> ��̾: <%=h row["title"] %><br /> ̾��: <%=h row["name"] %><br /> ����: <%= row["postdate"] %><br />
�����(C)�Υץ��������ERB���֤���������Τ���
��h�פȤ����Τϡ�html_escape�פȤ����᥽�åɤ���̾�Ȥ����������Ƥ��ꡢ���������׽������ѻ��ˤʤ�ʤ��褦�ˤ��뤳�Ȥ�ռ������߷פ���Ƥ��뤳�Ȥ����������롣
���Τ褦�ˤ��ä��ꤷ�������򸫤�ȡ���title�פȡ�name�פΤȤ���������<%=h ... %>�פȤ���Τ��Լ����ǡ�������<%=h ... %>�פˤ��Ƥ��ޤ��Τ��������Ȥ������������Ƥ����������
��������ȡ���h���դ��ȡ�h��̵����դˤ�����褫�ä��ΤˤȻפ��Ƥ��롣
<%= ... %> �γ�����Ū��HTML���ҤǤ���Τ��Ф���<%= ... %> ����ʬ��ưŪ�ʤ�Τ������ߤ����Ȥ��˻Ȥ���ưŪ�ʤ�Τ������ߤ����Ȥ��Ȥ����Τϡ����ΤۤȤ�ɤϡ��������Ȥ������ߤ����櫓�ǤϤʤ����������Ȥ���ȡ��ǥե���Ȥ�����HTML���������פ��Ƥ��ޤ��Τ������ǤϤʤ������������դˡ�������ɤ����Ƥ�ưŪ�������ߤ����Ȥ��� <%=h ... %> �Ƚ������褫�ä��ΤǤϤʤ�������̾���ϡ�h�װʳ��ˤ��������褵����������
���Τ褦�ˤ��ƹͤ���ȡ����⤽�⡢ASP����Ϥޤäơ�JSP��PHP��ERB�ȼ����Ѥ���Ƥ�����HTML��˥ץ�������������Ȥ������λ��Ȥߤ����ǽ餫��ǥե���Ȥǥ��������פ����褦�˺���Ƥ�����褫�ä��ΤˡġĤȻפ��Ƥ��롢����ʺ������κ�����
*1 PHP������ǡ�magic_quotes_gpc = On�פˤ��Ƥ���Τǡ�̵�̤ʡ�\�פ�����Ƥ��롣
*2 ��������p.67��CSRF�к��ʤɤˤ����꤬���롣���к�4�פȤ��ơ�
�����ԥ��å������γƼ�ǡ����μ����Ϥ��ˡ�$_GET �� $_POST �ǤϤʤ���$_SESSION �����Ѥ��롣
�Ȥ�����ˡ���󤲤��Ƥ��ơ����줬��̿���к��Τ褦�˽񤫤�Ƥ��뤬��������к��ˤʤ�ʤ���4��27���������˽񤤤Ƥ����褦�ˡ�ɬ�פʥѥ�᥿�ͤ����å�����ѿ��˥��åȤ���Ƥ���Ȥ������Ȥϡ����Τɤ����Υڡ����Ǥ����ͤ򥻥åȤ���ꥯ�����Ȥ�����Ϥ��ǡ����Υꥯ�����Ȥ�CSRF���⤷����˼¹ԥڡ����ˤ�CSRF���⤹��褦�ʻųݤ����ˤ��Ƥ��ޤ���
�ޤ���4-1-7���SSL�θ��̡פ�p.125�ε��Ҥˡ��ѥ��å���İ���줿�Ȥ�������ˤĤ��ơ�
Web���ץꥱ���������뤿��ˡ����Υ�٥�ǤΥ���å��󥰤β�ǽ���ޤǹͤ��ʤ���Фʤ�ʤ��ʤ�ƥʥ󥻥󥹤Ǥ���*15
�դˡ�SSL�����Ѥ������ġ����å����ˡ�SSL�ʳ��ǤϤ��Ȥꤷ�ʤ��פȤ���°����Ĥ��Ƥ����Ȥ��Ƥ⡢XSS�����ɤ��ޤ���
�Ƚ񤫤�Ƥ��ơ�������������Τ�����äȰ�̣�����ˤʤäƤ��롣
�⤦�ҤȤ���������󤲤�ȡ�p.228�Υ����ǡ�magic_quotes_gpc�פˤĤ��ơ�
magic_quotes_gpc��ǽ�ˤĤ��ƤϤ��������Ѥ�����Ƚ�⶯�������������Off�Ȥ��٤��Ƚ񤫤줿ʸ����¿��¸�ߤ��ޤ������ץ�����ޡ��Υ������٥뤬���ѤǤ��ʤ�Web���ץꥱ�����������Ѥ��륱�����Ǥϡ�magic_quotes_gpc��On�ˤ����������ۤ�ε��������٤ϰ����ȸ����ޤ���
�Ƚ񤫤�Ƥ��뤬��magic_quotes_gpc��On�ˤ���ȡ�CGI�ѥ�᥿��Shift_JIS���Ϥ��줿�Ȥ���ʸ��������ȯ�����Ƥ��ޤ����ᡢ���줬����ˤʤ�Ȥ������꤬�����Ƥ���褦�������Τ��ᡢ�󤤤��Ȥˡ�magic_quotes_gpc ��On��PHP�Ķ��Ǥ�ư���褦�ʥץ���������ƥ��˥å��ȾΤ��ơ�PHP�ץ���������Ƭ�ǡ�CGI�ѥ�᥿���������Ф��ơ�stripcslashes�פ򤫤���Ȥ������������פ���������PHP�ץ�����ޤδ֤����֤ȤʤäƤ���褦���ʤ����ܤ˽񤫤�Ƥ���櫓�ǤϤʤ��ˡ�magic_quotes_gpc = On ������ stripcslashes �����ꡢ�ޤ� htmlspecialchars ���Ƥߤ���ȡ��ۤ�ȱ���PHP�����ɤ��������� Google�Ǹ��Ĥ��롣magic_quotes_gpc �� Off ��Ű�줬�褤��������
���줫�顢p.197�Ρ�7-1 �����������ɤ��긵�ˤʤ��Ȥ����ȼ����θ��Ĥ���7-1-5 �ºݤ˹��⤷�Ƥߤ�פǡ�
�����ΰ��դ��륯��å��󥰤Ǥ���ʤ顢�������ץ�������ͥåȥ��ե������Ѥ���ʤɤΥ����������α��ä�ɬ�פǤ��������μ��ʤˤĤ��Ƥ��ܽ���ϰϳ��Ǥ���
�ʤɤȽ񤫤�Ƥ���Τ����ʤ����������������԰٤ˤ�����ʤ����Ȥ��ο��Ǥ����������ƤϤ����ʤ��Τˡ�����Ǥϴ��㤤�����ɼԤ⤤��ΤǤϤʤ�����
�ȤϤ����������ܤǤϡ�session.use_trans_sid �� off �ˤ��뤳�Ȥ䡢session.use_only_cookie = 1 �Ȥ��뤳�ȡ�session.auto_start �� off �ˤ��뤳�Ȥʤɡ�PHP��Í�������ò¤¹¤ë¤¿ï¿½ï¿½Î½ï¿½ï¿½×¤ï¿½ï¿½ï¿½ï¿½ï¿½Ë¤Ä¤ï¿½ï¿½Æ½ñ¤«¤ï¿½Æ¤ï¿½ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½É¤ï¿½ï¿½ï¿½ï¿½Ê¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Æ¤Ï°Ê²ï¿½ï¿½Î¥ï¿½ï¿½ï¿½ï¿½È¤Ç¤ï¿½ï¿½É¤ï¿½ë¡£
*3 �����ȯŸ������ȡ�HTML�����Ǥ�����Ҿ����ɲä������������ƹ������Ƥ����᥽�åɤ��Ѱդ���Ȥ����������˹Ԥ��夯������ꤹ����ȡ������ä��ѻ��ˤʤ롢���뤤�Ͻ������Ť��ʤ�ʤɤ���ͳ�ǡ��Ȥ��ʤ��ʤäƤ��ޤ����ɤ��ޤǹ�¤�����줿��ˡ��Ȥ��Τ����Ǥ�Х�󥹤��Ȥ�Ƥ��뤫�Ȥ������Ȥˤʤ롣
*4 ���ҡ�PHP�����С��ƥ��ε�ˡ��������ɸ�μºݡפˤ����Ƥ⡢p.48�ˡ֥��å���ɽ���Υ��˥������פȤ�������ब���롣cookie���ͤ�HTML���Ϥ���Ȥ��ˡ�<�ס�>�פΥ��������פ�ɬ�פ��Ȥ������Ȥ���������Ƥ��ơ���XSS�ȼ���������Сġĥ��å���������ǽ�Ǥ��뤿��ġ�������Τ���ġġפȤ��ƥ��������פ��륳���ɤ򼨤��Ƥ��뤬���������ä����Ȥϡ��������������פ��������ʥ����ǥ��󥰤򤷤Ƥ���йͤ���ޤǤ�ʤ���
*5 ���ν��Ҥˤϡ�³���ڡ����ǡ�
�Ȥ�����Â���ñ¤«¤ï¿½Æ¤Ï¤ï¿½ï¿½ë¤¬ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½é¤¬ï¿½ï¿½ï¿½ï¿½Ê¤ï¿½ï¿½Ù¤ï¿½ï¿½ï¿½ï¿½È¤È¤Ï½ñ¤«¤ï¿½Æ¤ï¿½ï¿½Ê¤ï¿½ï¿½ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½ï¿½Ì¥Ç¥ï¿½ï¿½ì¥¯ï¿½È¥ï¿½ï¿½ï¿½ê¤¬ï¿½ï¿½ï¿½Ã¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ï¤È¤ï¿½ï¿½Æ½ï¿½Î»ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ë¡ï¿½â¤¢ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½
����ͦ, PHP�����Υĥ� �����奢�ץ�����ߥ���, ��ŷ��, p.159
�٤Υ��ե����οͤ�����ʤ��Ȥ�񤤤Ƥ��ޤ���: ���ڹ�������������� - �ץ�����ߥ󥰲�����Ҥ��ȼ�����ɤ����뤫, �֥��˥����������ʥ����ڡ���פȤϲ���, ASP�Ȥ�JSP�Ȥ�PHP�Ȥ�ERB�Ȥ����դ�.. �ʤ�ۤɤ͡��֥��˥����������ʥ����ڡ���פȤϤ���������̣..
�֥����������оΡע��֥����������оݡ�
��GGI�ע���CGI��
�ǿͤ�����ʤ��Ƚ񤯤Τ����Ѷ��̤ʤΤǤ����������� �Ȥꤢ�����֥��˥������פ�֥��������ספ���ˤ��ʤ��褦�ˤ��Ƥߤ���褤�����˥������Ȥ������դ�Ȥ鷺�˼�ʬ�������������Ȥ�ɽ�����褦�Ȥ��Ƥߤ��餤�����������������뤳�Ȥκ��񤫤�ƨ���褦�Ȥ���ʡ���..
27���ΤҤ��ߤ������������򤤡�������¿���ˤ錄��ʤ��餽�줾����̯�ˤĤʤ��äƤ���((�����̣�ޤȤޤ꤬�ʤ��Ȥ⤤���뤬�ޤȤ�������ʳ������ͤ��������餷�礦���ʤ�����))�����ͤ�������줿���ʲ������ͤ�����⡣�ͤ�Web�ץ�����ߥ󥰤ˤĤ��ƤϤۤȤ���ǿ�..
���ڻ�Ρ֥��˥����������ʥ����ڡ���פƤΤ�����ä����򤤿ȤˤĤޤ�����ä���
���������˥������Ȥ����ͤ������Τ��ְ�äƤ���Ȥ����ո��򸫤ޤ����� ��⥵�˥������ȸ����ͤ�����Nagative Security�ʶػ߻�����������ͤ����ˤ����ȯ�ۤʤΤǡ�Positive Security�ʵ��Ĥ��������������ͤ����ˤǥץ���������٤��ȹͤ��Ƥ��ޤ�������..
2�����ͤ�ò¸«¤Æ¤ï¿½ï¿½ï¿½ï¿½ï¿½ ��PHP�۲���ͤ�����Ϥ����˽ñ¤¹ï¿½ï¿½ß¤ä¤¬ï¿½ï¿½part14 http://pc8.2ch.net/test/read.cgi/php/1134868212/ XSS�����θ���Ƥ��ʤ��䤫�餬�ޤ��ޤ����븽�¡�
HTML�ѤΥƥ�ץ졼�Ȥˤ����ƥ��������פ��줿���֤��ǥե���ȤǤ���٤����Ȥ����ΤϤ����̤������ERB�ϡʾ��ʤ��Ȥ������ϡ����ѥƥ����Ƚ����ѤǤ��ä�HTML�Υ��������׾��֥ǥե��Ȥ����ΤϤ���äȰ㤦���Ǥ����������ץ������Ϥɡ��桼��Τ��Ȥ�����[http://jakarta...
���ڤ��������
���ץ�����ߥ󥰲�����Ҥ��ȼ�����ɤ����뤫
�������㤤�������ΰ�����ȼ��������ɥ�ӥ塼�����Ѥ���1��
�����Ф餯����������Ƚ񤱤����ˤʤ�
��ƣ��
http://takagi-hiromitsu.jp/diary/20051227.html
���ä���autoincrement���Ƥ�������Ǥο��ͤ����äƤ���Ȥ��Ƥ�
��äƤ����Ȥ������Ȥ͡�
����ȿ�����٤����ɡ� ���ڹ�������������� - �ץ�����ߥ󥰲�����Ҥ��ȼ�����ɤ����뤫, �֥��˥����������ʥ����ڡ���פȤϲ���, ASP�Ȥ�JSP�Ȥ�PHP�Ȥ�ERB�Ȥ����դ�.. �Ƕ�Υץ�����������ϡ�ʸ������ϵ���������Ȥ����ͤ������ʤ��Τ��ʡ��񤤤Ƥ�ͤ�..
������� (PHP5)�� <?php foreach(simplexml_load_file('http://www.flickr.com/services/feeds/photos_public.gne')->entry as $it) echo $it->content ?> �����ޤ��󤹤��ޤ��� via 5-second RSS parser�� ��ȯ��ɤǤ� simple_xml...
EUC�����������PHP�ǤɤΤ褦�˽������뤫��Ĵ�٤Ƥ��ơ�1ǯ���˼�ʬ�ǽ񤤤�
PHP�Υ������ƥ��ˤĤ���Ĵ�٤Ƥ����顢���Τ褦�������ȯ�����ޤ����� [http://takagi-hiromitsu.jp/diary/20051227.html �ץ�����ߥ󥰲�����Ҥ��ȼ�����ɤ����뤫] [http://xoops.peak.ne.jp/md/news/article.php?page=article&storyid=80&easiestml_lang=xlang%..
������֥��˥������פǤ��� �Ż��Ǹ���ʸ����ζ�Ĵɽ��������Google�Υ���å���ɽ���ߤ����ʤ�ġˤ��äƤ��ΤǤ��������������̵�뤷�Ƹ���������ͤ��ä��ΤǶ�Ĵ�Ѥ���������span�������������ޤ�ƶ�Ĵ���Ƥ��ޤ��Ȥ����Х����ꤳ��Ǥ��ޤ���HTML�ü�ʸ..
�Ĥ�Ĥ����ʸ���Ϣ�ͤ뤳�Υ֥�����ï���ܤˤ�α�ޤäƤ��ʤ��������ȻפäƤ����顢�������ƤΥ����Ȥ򤤤������ޤ�����(���ء���)�Ρ�
���Ƥϡ������񤤤�php�Ǥ������ͤ�...