きょろきょろ(๑´• ₃ •̀๑)

特にWeb系についてのことを書いていきたいと思います。 基本的にメモ書きみたいなものです。

Laravel4の導入&route.phpについて

http://dim5.net/laravel/windows-install.html

とりあえずこのサイトを見ながらやりました。

 

バージョンを指定して展開を行わないとLaravel5に勝手になってしまうので、Laravel4がいい人は、バージョン指定をして

composer create-project laravel/laravel=4.2.* laravel --prefer-dist

のようにしなければならないみたいです。(4.2のところがバージョンかな?)
そして、jsやcss,imgなどのファイルは、laravel/publicフォルダに入れ、
phpファイルは、laravel/app/views/mainの中に入れました。

laravel/app/routes.phpにルートの設定があるのですが、そこでは、

Route::get('/', function()

   return View::make('main.index');
});

こんな感じに書きます。

Route::get('/',funvtion() の '/' はルートディレクトリで

return View::make('main.index'); はmainというフォルダの中にあるindex.phpを指し
今回VirtualHostでいろいろいじってたので、http://laravel.local でアクセスできます(index.phpの内容が表示される)
先ほどの

Route::get('/', function()

   return View::make('main.index');
});

の後に、

Route::get('/hoge', function()

   return View::make('main.test');
});

を追加すると、'/hoge'というパス、すなわち http://laravel.local/hoge でmainフォルダにあるtest.phpにアクセスできるという感じです。

ここで、index.phpとかで重要なのが、JavaScriptファイルなどを読み込んだり、他のphpファイルにhrefで飛ばす際に絶対パスで指定するのが重要らしいです。

<script type="text/javascript" src="<?php echo url('/');?>/js/custom.js"></script>

のように、<?php echo url('/');?>などを用いてルートのパスを付け加えるみたいです。

url('/')の中身は、Route::get('/',function())の'/'に当たります。

まぁそんな感じで、HTMLでView作ってたところをLaravel4で実装出来ました。これからcontroler,modelの作成です。

 

CTF for Beginner in Hiroshima

今日は、CTF for Beginner(以下:ctf4b)が広島でありました。

ctf自体は、今回ctf4bすることを知ってから、ctfについて知りました。

ksnctfをすこし頑張ってみたのですが、1問も解けませんでした^;

 

で今回参加して「バイナリ」、「パケット」、「Web系」についての講義を受けました。

  • バイナリ

バイナリについては、fileコマンドで、jpeg,png,docxなどのどのデータなのかを判断して、どうのこうのするということを学びました。

  • パケット

パケットでは、WireSharkというパケットを見るソフトを用いてFilterや、HTTPで取り扱っているファイルの抽出、統計を調べたりするということを学びました。

  • Web系

ここでは、XSSSQL injectionについてで、主に攻撃方法を説明してくださいました。XSSでは、辞書登録によく使うスクリプトを登録していたりと面白かったですね。SQL injectionでは、カラム数の特定や、UNION SELECTなどを紹介していました。とりあえず、エラーから予測を付けていくということがとても難しそうでした。

  • 最後には、CTFを実際に

最後は実際にCTFを行ったのですが、100,200,300,400点問題があり、100点問題は講義資料を見れば解ける問題でした。

結構頭を久しぶりに使って考えてたんですが、楽しく出来たと思います。

やってる最中に作業妨害を運営がやってたんですが、関西のCM(広島の人分からんだろとか思ってたり)や中村屋のネタの動画など思わず笑ったりしながらしてました(笑)

結果としては、700点で14位/43人?でした。

終わった後に3問答えが分かって、なんだかなぁ・・・と後悔がw

でもツールとかを上手いこと使えるようになったら、もうちょいうまいこと行けるのかもしれないと思いました。あと予測を上手いことすることですかね・・・・

 

今度CTFがあればまた参加したいと思いました。

 

textareaで取得した改行を含むデータ(php側)をJavaScriptでそのデータを扱う。

textareaで取得したphpのデータをJavaScriptで取得しようと思ったら改行されてしまいうまいこといかない!

 

やりたいことは、JavaScriptで改行付きデータを表示させるって感じです。

 

ということで、今回、いろいろと調べてみると、

textareaのデータが以下のようである場合、

-------------------------データ---------------------------

test

hoge

-------------------------------------------------------------

改行が邪魔をして、htmlのソースを見ると、JSには

--------------------------ソース--------------------------

var text = 'test

hoge';

-------------------------------------------------------------

となっていて、Errorとなる。

これを解消するために、まずphp側で、改行(\n)を<br>に置き換えてあげる。

textareのデータがphpの変数dataに入っているとすると、

$data = str_replace('\n','<br>',$data);

str_replace関数を使用することで、置き換えることが出来る。

これで、普通にソース見るだけだと改行は入ってない。

しかし、F12キーでソースを見ると、なぜかまだ改行が反映されており、以下のようになっている。

---------------------------ソース(F12キーでの)---------------------------

var text = 'test

<br>hoge';

---------------------------------------------------------------------------------

ここで、json_encode関数を使うことで、解決することが出来た。

var text = <?php echo json_encode(str_replace("\n","<br>",$post->content)) ?>;

このような感じである。

本当は ' か " で<?php ?>を囲むのだが、str_replaceで勝手に " で囲んでくれるので、外を " でくくるとダメと言われるので注意。

 

こんな感じで、json_encode関数を使うことで、F12キーでソースみても改行は入らずうまいこと行けた。

参照:


phpで、引用・改行を含む文字列を、javascriptで展開する方法(382)|teratail