2012年8月30日木曜日

Webサイトを作った時に気にしたセキュリティ対策のまとめ

・XSS(クロスサイトスクリプティング)対策
サイトに動的な情報をそのまま表示しないようにすればいいのでユーザ側から受け取った入力を表示する時はPHPのhtmlspecialchars()等でタグを無効化してから表示する。

・SQLインジェクション対策
今回はDBへのアクセスはPDOを使ったのでPDOを利用する時の注意点だけ
必ずプレースホルダーを使う、prepareを使ってSQL文を実行すればOK
動的プレースホルダと静的プレースホルダがあるので 
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES,FALSE)
で静的プレースホルダを使うように設定する
DBへの接続時に文字コードを指定する(普通はUTF8)

・パスワードのハッシュ化
DBにパスワードを登録する際にハッシュ化するアルゴリズムにもいろいろあるらしく、
MD5とRIPEMDというアルゴリズムは危険性があるらしいので使っちゃいけない。
CRYPTRECという暗号化プロジェクトがSHA256以上を推奨してるらしいのでこれに従えばよさげ。
あとは「PASS」みたいないろんな人が設定しそうなパスワードを単純にハッシュ化すると同じ値にハッシュ化されてハッシュ化した値で同じ値がたくさんあったらこれはPASSをハッシュ化した値だなって感じに分かるのでソルトと言われる文字列をパスワードに付加してからハッシュ化してDBに保存する





2012年8月16日木曜日

短縮URLの生成


googleの短縮URLAPIを使う機会があったので忘備録的なもの

まずはAPIの利用登録をする必要があるので
「http://code.google.com/apis/」
で「URL Shortener API」の利用をオンにしてAPIキーも後で使うのでAPIキーをメモしておく

「https://www.googleapis.com/urlshortener/v1/url」のURLにAPIキーを足して短縮したいURLをJSON形式でPOSTすると短縮されたURLの情報がJSON形式で返ってくる

APIの上限は1日100万リクエストらしいので普通に使っていれば上限を超えることはなさそう

ソースコードは以下のサイトを参考を参考にさせていただきました
MACH3.laBlog「goo.glがAPUI公開されたらしいので試してみた」




2012年8月12日日曜日

Scala勉強過程その3

メソッドの引数はvalで宣言されている

メソッドの戻り値は基本的には最後に演算された値

クラスが静的メンバーを持てない

静的メンバーを持つ変わりにシングルトンオブジェクトを持っている
コンパニオンオブジェクトとコンパニオンクラス

コンパイルコマンドはscalac

Scalaの基本型はJavaと同じ種類で同じ範囲を持っている

生の文字列の場合は"""で囲めばエスケープ文字を使わないでも/等も使える
==演算子は値が等しいかを調べる、参照先を等しいか調べるのは別にある

2012年8月11日土曜日

Scala勉強過程その2



Scalaの配列等について

配列はミュータブル(初期化後は長さは変えられない)
リストはイミュータブル
タプルは異なる型の要素を持つことができてイミュータブル
集合とマップはミュータブルとイミュータブルの両方が準備されてる

あと個人的メモ

関数の結果型(戻り値の型)がUnitの場合は関数が副作用をもっている
ScalaにはJavaでいうinterfaceの変わりになるものはtrait(トレイト)というらしい、ミックスインとかもできるらしいけどこれはまだ先で
ミュータブルが変更可能でイミュータブルが変更不可・・・


2012年8月10日金曜日

Scsla勉強過程その1

Scalaスケーラブルプログラミング第2版
Scalaの参考書はコップ本って呼ばれてるこれが一番よさげらしいのでこれを参考に勉強して行きます(`・ω・´)
アマゾンのURL http://goo.gl/bckpI

Scala勉強のモチベ維持とまとめもかねてScalaの勉強過程を適当に書いて行きます

どうやらScalaはオブジェクト指向と関数型のどっちでも書くことができるらしい
1+2って式があるとInt型の+関数が呼ばれて加算が行われているって考え方?みたいに考えるのが関数型って理解のいいのかな?

オブジェクトの考え方もJavaっていうよりはRubyに近い印象を受けたけどまだまだほとんど学習してないのでこれから先また印象は変わるかも





2012年8月9日木曜日

Scalaのインストール


Scalaのインストールしたのでメモ

http://www.scala-lang.org/downloadsからPCにあったのをダウンロードし、ダウンロードしたファイルをインストール

インストールが終わったらデフォルトならProgram Filesフォルダの中にscalaフォルダがあるのでその中のbinフォルダに環境設定からパスを通す

scalaの実行はコマンドプロンプトからscalaコマンドで対話型インタプリタが起動する

ブログ始めました

ブログ始めましたー

あまり固く考えずにプログラミングについて思ったこととか書いていきます