2016年11月10日木曜日
PHP の `headers already sent` エラー
PHP の `headers already sent` エラー
(参考)
http://ja.stackoverflow.com/questions/5453/php-%E3%81%AE-headers-already-sent-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AF%E3%81%A9%E3%81%86%E7%9B%B4%E3%81%97%E3%81%9F%E3%82%89%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B
● header()の前に、出力文字(空白他)が含まれていてはいけない。
● 例)includeするhead.php に<head>が含まれていた場合。includeの前に header()をセットする。
--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
include 'head.php';
?>
<?php
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
?>
--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
?>
<?php
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
include 'head.php';
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
echo sha1(session_id());
?>
解決した(1)
● head.php に<head>が含まれている。includeの前に、header()をセットする。
● header()の前に、出力文字(空白他)が含まれていてはいけない。
--OK----------------
<?php
session_start();
$title ="duf20page:Contact";
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
解決した(2)
● head.phpで既にchersetしてあるので、header("Content-type: text/html; charset=utf-8");を省いた。
--OKOK----------------
<?php
session_start();
$title ="duf20page:Contact";
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
-----------------------
2016年11月8日火曜日
CSRF (Cross site request forgeries) クロス サイト リクエスト フォージェリ
CSRF対策 メモ(php)
参考)ドットインストール
http://dotinstall.com/lessons/bbs_php_v2/24508
http://dotinstall.com/lessons/bbs_php_v2/24509
1) フォームをポストするファイルにトークンを仕込む。
1.トークンを作る
例) $token=sha1(uniqid(mt_rand(),true))
2.サーバ上に記録。
(1) session_start() で、セッションを使えるようにして、
(2) 変数 $_SESSION['token'] にトークンをセット。
3.トークンをデータとともに送信する
formからPOSTで、データとトークンを送り出す
2) データ受取りの処理をするファイルで、
---------------
◆ session_start エラー
エラーメッセージがでた :
Warning: session_start() [function.session-start]: Cannot send session cookie....
session_start() は、必ず、先頭に記述すること。
http://www.phppro.jp/phpmanual/php/ref.session.html
http://www.phppro.jp/phpmanual/php/function.session-start.html
---------------
◆_CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例
徳丸浩の日記 2011年01月27日
http://www.tokumaru.org/d/20110127.html
(本文より)> トークン生成は安全な乱数を用いるべきであり、安全な疑似乱数生成器がない場合は、セッションIDそのものを使う方法が妥当
(コメントより)> 時刻を種にしても安全性はたいして向上しない
---------------
◆CSRF対策の実際
2011年3月4日 23:17
http://www.phppro.jp/qa/3140
answerer:ockeghem 3月7日 09:20
・トークンの要件は、「第三者に推定されないこと」
・セッションID(session_id)は推定されない(ように対策されている)という前提をおくことができます
・トークンとして推測の困難なものを使っている場合、それに加えてハッシュ関数を通す必要はありません
参考)ドットインストール
http://dotinstall.com/lessons/bbs_php_v2/24508
http://dotinstall.com/lessons/bbs_php_v2/24509
1) フォームをポストするファイルにトークンを仕込む。
1.トークンを作る
例) $token=sha1(uniqid(mt_rand(),true))
2.サーバ上に記録。
(1) session_start() で、セッションを使えるようにして、
(2) 変数 $_SESSION['token'] にトークンをセット。
3.トークンをデータとともに送信する
formからPOSTで、データとトークンを送り出す
2) データ受取りの処理をするファイルで、
サーバ上の記録と、POSTで受け取ったトークンを比較する。
サーバ上に記録がなかったり、値が異なっている場合は、異常。
if ( empty($_SESSION['token']) || ($_SESSION['token'] != $_POST['token']) )
if ( empty($_SESSION['token']) || ($_SESSION['token'] != $_POST['token']) )
---------------
◆ session_start エラー
エラーメッセージがでた :
Warning: session_start() [function.session-start]: Cannot send session cookie....
session_start() は、必ず、先頭に記述すること。
http://www.phppro.jp/phpmanual/php/ref.session.html
http://www.phppro.jp/phpmanual/php/function.session-start.html
---------------
◆_CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例
徳丸浩の日記 2011年01月27日
http://www.tokumaru.org/d/20110127.html
(本文より)> トークン生成は安全な乱数を用いるべきであり、安全な疑似乱数生成器がない場合は、セッションIDそのものを使う方法が妥当
(コメントより)> 時刻を種にしても安全性はたいして向上しない
---------------
◆CSRF対策の実際
2011年3月4日 23:17
http://www.phppro.jp/qa/3140
answerer:ockeghem 3月7日 09:20
・トークンの要件は、「第三者に推定されないこと」
・セッションID(session_id)は推定されない(ように対策されている)という前提をおくことができます
・トークンとして推測の困難なものを使っている場合、それに加えてハッシュ関数を通す必要はありません
---------------
登録:
投稿 (Atom)
BloomというAI
オープンソースのAI「BLOOM」が出ました。 日本語も使えるというので、早速サンプルページで遊びました。 白い文字が私。ピンクの文字がAI。 ↑AIとやりとり できたのが、これ。AIとの合作超短編童話😆 『 傘をさして公園を歩いていたら、小さなリスが足...
-
オープンソースのAI「BLOOM」が出ました。 日本語も使えるというので、早速サンプルページで遊びました。 白い文字が私。ピンクの文字がAI。 ↑AIとやりとり できたのが、これ。AIとの合作超短編童話😆 『 傘をさして公園を歩いていたら、小さなリスが足...
-
単純化しよう。 現状:ファイルが1つある。(test.txt) 操作:編集して保存して閉じる。 目的:編集する前に戻りたい。過去にタイムリープすること。 ...