2017 11,13 16:46 |
|
とあるプログラムの調査を依頼され、調べていたのですが、初めて知りました。
ファイルステータスを取得するのに、PHPがキャッシュを使っていること。
clearstatcache — ファイルのステータスのキャッシュをクリアする
http://php.net/clearstatcache
影響を受ける関数を以下に示します。
stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(),
is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(),
filegroup(), fileowner(), filesize(), filetype(), および fileperms().
これにより、filesize()とかコールしても、キャッシュファイルのサイズを戻すことがあり、
正しい処理ができない可能性も
負荷をかけ、ログファイルに沢山書き込むようにテストをしたとろこ、 ログファイルのサイズが、上限を設けているにも関わらず、 上限サイズを超えて、まちまちに。。。 filesize()が現在のファイルの情報を正しく取得していないという証拠なのでしょう。 PR |
|
2017 10,05 15:14 |
|
2017 08,29 14:24 |
|
https://github.com/cakephp/cakephp/tags
で忘れているので、勉強がてらに2.5.4をインストールしてみました 参考にしたサイト http://qiita.com/knife0125/items/46798ade9b32f43a7c83 http://qiita.com/t_enderman/items/5708c54f05d3df9ec370 # cd /usr/local/src # wget https://github.com/cakephp/cakephp/archive/2.5.4.zip # unzip 2.5.4.zip
# cp -r cakephp_2.5.4 /var/www/test
# cd /var/www/test # chown -R apache app/tmp MySQLで、DBスキーマ―の作成し、ユーザとPASSを設定 # cp app/Config/database.php.default app/Config/database.php # vi database.php 'login' => '設定したユーザ',
'password' => '設定したパス',
'database' => 'DB名',
'prefix' => '',
'encoding' => 'utf8', //encodingのコメントを外す
$defaultと$testの両方を変更 Security設定のためのパラメータを自分の独自のパラメータに設定します。
下記のスクリプトを実行して出てきたパラメータを、Security.salt等該当箇所の値に設定します。
※ これができていないと、CakePHPが正常に動作しないので必要です。
とのことでしたので、 # php -r '$num = ""; for($i=0;$i<10;++$i){$num .= rand(100,999);} echo sha1($num) . "\n";' 値1が出力(表示)される # php -r '$num = ""; for($i=0;$i<10;++$i){$num .= rand(100,999);} echo $num . "\n";' 値2が出力(表示)される # vi app/Config/core.php Configure::write('Security.salt', '値1を設定'); Configure::write('Security.cipherSeed', '値2を設定'); DebugKitの導入に関して、cakephpのバージョンと合わせないとエラーが出ました https://github.com/cakephp/debug_kit/releases より、合うバージョンをダウンロードして、WinSCPで、アップロード # vi app/Config/bootstrap.php CakePlugin::load('DebugKit'); を追加 Debugモードを1にする
# vi app/Config/core.php
Configure::write('debug', 2); を Configure::write('debug', 1);
に変更
# vi app/View/Layouts/default.ctp
<?php echo $this->element('sql_dump'); ?>を
<?php // echo $this->element('sql_dump'); ?> にしてコメントアウト
|
|
2017 06,30 19:59 |
|
2017 03,27 19:02 |
|
何も考えずに、とあるサイトのコピーを張り付けて実行したら、
危なく嵌るところだったので、記載 とある仕様で、SHA-256で、ハッシュ化をしたデータで、セキュリティ強化を狙いと なんで、そんな方法?って思うけど、仕方ない 正直、くだらない対応だと思っていたので、まともに組む気もしなかった 通常なら、 $text = 'test';
echo hash( 'sha256', $text ,false ) . "\n";
です。 しかし、とあるサイトでは、 $text = 'test'; echo hash_hmac( 'sha256', $text ,false ) . "\n";
なっており、ハッシュ値の結果が違う! PHPとJAVAで、ハッシュ値の検証をしていたので、危なく嵌るところでした hash_hmacは、別の使い方で、hashが、正しい ※hash_hmacは、hmacの計算をする方法で、hashではないようです(多分) 最初は、あれ?JAVAのほうが間違いえたかな?って思っていたけど、 PHPのコードをコピーしたサイトのほうが間違っていたとは。。。
|
|
忍者ブログ [PR] |