「
PHP
」を編集中
2007年2月6日 (火) 20:24時点における
192.168.200.221
(
トーク
)
による版
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''PHP(ピー・エイチ・ピー)'''は、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。 Hypertext Preprocessorの略。なんでこれを略してPHPになるのかは不明。<br>HTMLのソースの中に<?php ?>のタグを埋め込むことで動作させることができ、連携がやりやすい。<br> [[PEAR]]というライブラリがありなにかと便利。<br> [[Smarty]]というテンプレートエンジンも便利。<br> サンプルソース: <div id="manual"> <div class="html-source"> <pre> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>PHPのテスト</title> </head> <body> <?php <h1> print "今日は{date('Y'年'n'月'd'日)}です。 </h1> <p></p> ?> </body> </html> </pre> </div> とすると、今日は2007年1月15日です。と表示される。<br> 適当なコードを書くと、XSS(クロスサイトスクリプティング)、ScriptInjection(スクリプトインジェクション)、SQLインジェクションなどの攻撃に対してリスクを抱えることになり危険。 <br> <br> 注意すべきコード <dl> <dt><pre>$_SERVER['PHP_SELF']</pre></dt> <dd><pre>htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES)</pre>とするほうがいいらしい。 </dd> <dt><pre>$_REQUEST['hoge']</pre></dt> <dd><pre>$_GET['hoge'],$_POST['hoge'],$_COOKIE['hoge']</pre>などに限定しないと外部から変数を書き換えられる可能性あり</dd> <dt>バイナリセーフでない関数</dt> <dd> バイナリセーフでないとは文字列中にヌルバイトがあった場合、それ以降の文字列を読み込まないこと。 <pre>ereg_replace()</pre>などをサニタイジングに使うと危険。preg系はバイナリセーフで処理速度もereg系の数倍速いらしいのでこちらを代用。mb_ereg()はバイナリセーフ。 </dd> <dd>ereg_replace(),eregi(),eregi_replace()</dd> <dd>split(),spliti()</dd> <dd>require(),require_once()</dd> <dd>include(),include_once()</dd> <dd>fopen(),file_get_contents(),readfile(),basename()</dd> <dt>SQL文の作成</dt> <dd> ユーザ変数をそのまま入力しない<br> MySQLであればmysql_escape_string(),mysql_real_escape_string()などでサニタイジング できる。mysql_real_escape_stringはDBに接続した状態でないと使用不可。 </dd> <dd> PEARのDBクラスを使うのであれば「プレイスホルダ」というものを使うことができる。 </dd> <dd> <div class="html-source"> <?php<br> //DBクラスの読み込み<br> require_once("DB.php");<br> //MySQLサーバに接続 $db=DB::connect("mysql://username:password@hostname/database_name");<br> //パラメータの指定 $params="hoge";<br> //SQL文の生成 $sql="SELECT * FROM $dbname WHERE culumn1=?";<br> //クエリ $db->query($sql,$params);<br> ?><br> </div> </dd> </dl> </div>
編集内容の要約:
Wiki@KDSへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
Wiki@KDS:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集の仕方
(新しいウィンドウで開きます)
案内メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWikiについてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報