タグ

2010年11月13日のブックマーク (8件)

  • 第2回:SQLインジェクションを防ぐには|株式会社トッパンシステムソリューションズ

    ハッキングを行おうとする者にとって、エラー時に表示される情報は非常に有益です。 例えばDBが出力するエラーが直接表示されている場合、ハッカーに対して攻撃のための大きな手がかりを与えてしまうことになります。 まず、システムが出力するエラー情報をユーザに見せないようにしましょう。エラー発生時は、エラーが発生したことのみを画面に表示し、別途エラーログなどを出力することが懸命です。 その他、HTML内にSQLをコメントで出力したり、公開フォルダ内にエラーログを保管するといったことも避けるべきです。 テーブル名やカラム名など、SQL文を構成する要素をユーザに知られないように、可能な限り情報の隠蔽を心がけることが重要となります。 ユーザが画面からデータを入力でき、その値がSQL文の構成要素になる場合、SQLインジェクションが引き起こされる確率が高くなると言っていいでしょう。 水際対策として、ユーザの入

  • - ノヴァちゃん日記 - Railsで直書きのSQL文字列をサニタイズする方法

    Railsで直書きのSQL文字列をサニタイズする方法 どもども!ノヴァちゃんです! Railsでは基的にActiveRecordを利用してSQLを扱うと思いますが、 通常:conditionsパラメータに値を渡すことで、内部で勝手にサニタイズ処理をしてくれます。 Profile.find(:all, :conditions => {:name => "ノヴァ'ちゃん"}) ; # => "ノヴァ''ちゃん" しかし、複雑なSQLや、OR句を用いてSQL文を構築したい場合、 どうしても:conditionsに文字列そのものを渡したくなることがあります。 たとえばこんなSQL文を投げたいとき。 SELECT * FROM profiles WHERE is_live = 1 AND (country = 'Japan' OR contry = 'America') ; まぁ正直この場合も

  • 5分で滑舌が良くなる方法

    遠藤 結万@CMO,inc. @yumaendo 【5分で滑舌をUPする方法】「聞き取れない」という状態は何か。1)そもそも聞こえない 2)音が正しく発生されていない 3)音が発生されているが、繋がったり潰れてしまっている 基的に上記3つが、「滑舌が悪い」状態です。 遠藤 結万@CMO,inc. @yumaendo 続く)そもそも聞こえない場合は声量あげましょう。音が発声されてない場合は、口の開きや舌の位置に気をつけましょう(でも一冊買えば充分)。音が潰れる場合、大抵早口になっているので、一音一音をはっきり発音しましょう。 遠藤 結万@CMO,inc. @yumaendo 続く)大事なのは、「滑舌がいいか悪いか」ではなく、「自分のどの部分に問題があるか」を知ることです。放送部にでもいない限り、自分が普段どのように発声しているかはなかなか考えることがありません。だから、とりあえずさっきの

    5分で滑舌が良くなる方法
  • 説得術を極めるためのコツ10個

  • multi_db を使ったアプリのテスト(RSpec)を書く方法 - yuumi3のお仕事日記

    開発中のシステムでは multi_db を使ってMaster/Slave型のRDB負荷分散を行っていますが、こういうアプリでRSpecを書くのは一筋縄ではいきません。 Master/Slave型のRDB負荷分散を行うシステムではRDBへのinsert/updateはMaster-DBにのみ行い、selectはSlave-DBに対して行います。 multi_db では、 ドキュメント にあるように、通常のアクセスはSlave-DBに対して行い、コントローラのアクションまたはモデル単位でMaster-DBにのみアクセスするように指定します。 このようなシステムのテストでmulti_db自体が当にRDBアクセスをMaster-DB、Slave-DBに振り分けているかのテストは不要だと思いますが、アプリ内にMaster-DBにのみアクセスさせる為のコードを書いているので、アプリが当にMaste

    multi_db を使ったアプリのテスト(RSpec)を書く方法 - yuumi3のお仕事日記
  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
  • データベースを用いたセッションデータ管理について - LukeSilvia’s diary

    Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。主な特徴は次のような感じ。 データが増加するのが速い 定期的な削除が必要 頻繁に更新される リクエスト毎に読みに行く必要がある このデータを読めないとアプリケーション全体にアクセスできない アクセス頻度が高いということです。あと、1つ目の特徴からセッションデータについては意識的に管理してやる必要があります。 現在の環境 アプリケーションの領域が少し特殊で、セッションデータがやたらたまります(ユーザ数何百万のサービスとかそういうのではないです)。 RDBMS MySQL 4.0.22 ストレージエンジン InnoDB レコード数 6千万 テータサ

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
  • Railsで単数形を複数形に変換する方法と、その変換がうまく行かない場合の対処法 - 久保清隆のブログ

    単数形を複数形に、複数形を単数形にする方法 単数形と複数形の変換は以下のメソッドでできる。 String#pluralizeで単数形を複数形に。 String#singularizeで複数形を単数形に。 テーブル名などで複数形がわからなくなったりしたらこれを使えばいい。 #通常の場合 >> "program".singularize => "program" >> "programs".singularize => "program" >> "program".pluralize => "programs" #特殊な場合 >> "person".pluralize => "people" >> "people".singularize => "person" #単複同形 >> "sheep".pluralize => "sheep" >> "sheep".singularize => "s

    Railsで単数形を複数形に変換する方法と、その変換がうまく行かない場合の対処法 - 久保清隆のブログ