Rails4 Security Presentation Transcript Rails 4 Security エレクトロニック・サービス・イニシアチブ HTTP://WWW.E-SI.JP/ 自己紹介 氏名:大垣靖男(Ohgaki Yasuo) メール:yohgaki@ohgaki.net SNS: yohgaki (Twitter/Facebook/Gmail/LinkedIn) 職業: エレクトロニック・サービス・イニシアチブ有限会社社長 PHP技術者認定機構顧問・BOSS CON CTO・岡山大学大 学院講師 Webアプリソースコード検査 (Ruby/PHP/Java/C#/ObjectiveC)など OSS開発者:PHP・Momonga-Linuxコミッター 2 PROVE for PHP 3 Windows7でRails4 4 注意: すべての
(Last Updated On: 2018年8月8日)前回公開したRails4セキュリティのスライドは誤解をされる可能性があるのでは?と指摘される方も居たので「Rails4セキュリティ リローデッド」として追加情報を加えたスライドを作ろうかと思っていました。確かに、今見直したら肝心な所で追加し忘れてる部分があって誤解しやすい、というか言いたい事が分からないかも知れません。 入力パラメータをバリデーションするとは、バリデーションするメソッドを作ってバリデーションする、ことです。必須・許可設定だけだとモデルに渡すデータがどれかしか分かりません。許可設定と同時にバリデーションする事が良い、という事です。少なくともここだけは直した方が良さそうです。 あまり時間が取れなかったのでスライドを作るために作ったメモを取り敢えず公開します。スライドにして欲しいという方が多ければスライドにするかも知れません
2013-07-10 Rails の validation 論争批判 Rails 容赦なく批判するので、気分悪く思う方は読まないでください(後半だけよむといいかも)。 twitter での議論は、徳丸さんがまとめられている分はみましたが、それ以外は見落としがあるかもしれません。 TL; DR: これまでの議論は教条的であり、技術を誤解したうえで過信している。 バリデーションは広い意味をもつが、重要なドメインについての観点が見落とされている。 技術者として、なにが必要で、どう実装すべきか自分の頭で考えよう。 validation (バリデーション) とは バリデーションとは 【validation】 〔バリデート〕 - 意味/解説/説明/定義 : IT用語辞典 検証(する)、実証(する)、認可(する)、妥当性確認、などの意味を持つ英単語。ITの分野では、対象がその仕様や文法などに照らして適切
2013-07-12 スライド "Rails4 Security" 論争のまとめと、職業的倫理感の話 大垣靖男さんのスライド "Rails4 Security" にまつわる議論がややこしくなってきたので、ちょっと整理してみました。複数の議論が並行して融合しつつ分離しつつ進行しているので自分自身よくわからなくなってきているので。 時系列 岡山Ruby会議02で招待講演として初公開 (2013/7/6) Slideshare で公開 (2013/7/8) Rails技術者認定試験のFacebookページでシェア (2013/7/8) Rails技術者認定試験のFacebookページで「大垣さんの回答」をシェア (2013/7/9) そして混沌とした論争へ 議論のトピック1: 何故インターネットで広まる前に止められなかったのか これは技術的な話ではないので飛ばして読んでもかまいません。 "Rai
徳丸 浩 @ockeghem 大垣さんのプレゼン資料に、バリデーションはコントローラで実施すべきで、そうしていないと欠陥としているのだけど、バリデーションをコントローラに書くかモデルに書くかはフレームワークの考え方によるもので、欠陥は言い過ぎではないかと思いましたが、どうでしょうか? 2013-07-08 17:24:07 徳丸 浩 @ockeghem さきほどのプレゼン資料はこちら…「ActiveRecordを利用しない場合はバリデーションを行えない」ことを指して「欠陥」と言っているようにも読めますが… Rails4 Security http://t.co/zimFxK2GwE 2013-07-08 17:31:31
Ruby これは何?小規模のグループで緩くコミュニケーションを取るための、Twitterクローンなマイクロブログです。Rails製です。このGW中に作りました。予め決められたグループで運用することを想定しているため、twitterに比べるとFollow機能等がありません*1が、その分グループ運用に適した他の機能も加わっています。 Timeline Wiki - Show Wiki - Edit なぜ作った?大学の研究室で日々の成果や意見等をつぶやくことで、学生や教員間で進捗を管理しつつコミュニケーションを取り、良い研究室生活を送ろう、という目的のもとで作りました。研究室でなくとも、友人間のグループや小規模なプロジェクト等、色々な用途に使えるのではないかと思っています。 また、Rails3を使ってまともなWebアプリを作ってみたかったので、その学習も兼ねています。コードはこちら(github
はじめに どうもKRAYの芳賀です。 今日はツイッターサービスをスピーディーかつ無料で作るお話です。 僕は日頃趣味でツイッターサービスを作っているのですが、アイデアを着想したその日のうちにプロトタイプを作って動かすことができるくらいにノウハウが溜まってきました。 仕事が終わってからのプライベートな時間だけでも、1週間から1か月もあれば1つサービスがリリースできる感覚がつかめたので、必要最低限の機能を備えたサービスを短時間で作れないだろうか?と時間を計測しつつ実践してみたところ、なんと1時間で完成できたので、その手順を紹介します。 開発の流れ まずは開発の流れを説明します。 ツイッターアカウントの用意 まずツイッターのアカウントが必要になるので、まだ持っていなければ取得しましょう。サービス用に改めて取得してもいいですね。 サーバの用意 作成したウェブアプリを設置するサーバを準備します。PHP
はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで本稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct
IPA(情報処理推進機構)は9月7日、「自治体・企業等の情報システムへのRuby適用可能性に関する調査」の報告書を公開した。同調査ではRubyについて、自治体や企業などの業務システムの開発といった分野を想定し、機能面・非機能面からその適用性の評価を行った。 調査を実施したのは、「Enterprise Ruby コンソーシアム(テクノプロジェクト、みずほ情報総研)」。検証環境は、富士通の「Platform Solution Center」に設けられた検証ルームと検証用機器が用いられた。 富士通「Platform Solution Center」のサーバルームと検証ルーム 同検証の目的は、Rubyを用いた「入出力処理」、入出力処理によって構成される「アプリケーションとしての処理プロセス」を想定したベンチマークを取得し、幅広いアプリケーション開発にRubyを用いる際に参考となる計測データやチュー
はじめに Twitterは140文字以下の短いメッセージをつぶやきあうシンプルなサービスです。新しいコミニュケーションの形として利用している人も増えてきました。 Google App Engine(以下 GAE)についてはご存知の方が多いと思います、Googleが提供するクラウド環境で、ある規模までのアプリなら無料で使えます。また、GAEは単なるサーバ環境の提供ではなくスケーラビリティと信頼性が得られるアプリケーションの実行環境です。しかし使える機能やデータ管理の方式はGoogleの提供するSDKに従う必要があります。 GAEは2009年4月からは、Pythonに加えJavaがサポートされるようになりました。本連載の第1回目でふれたように、Rubyの処理系にはまつもと氏の作った処理系(MRIと呼ばれます)以外にも、Javaで作られた JRuby という処理系があります。JRuby はJav
Google App Engine(GAE)の可能性はJavaをサポートしたことによってその可能性を飛躍的に向上させた。JavaVM上で実装された言語であれば何でも動作する。JRubyもその一つで、Ruby on RailsもGoogle App Engine上で動作する。 GAEのパワーを素早くゲットする とは言えやはりマイノリティだけに色々な準備が必要とされていた。そのため敬遠していた人も多いだろうが、Rails on GAEによって大きく舵を切ることになりそうだ。 今回紹介するオープンソース・ソフトウェアはRails on GAE、GAEでRuby on Railsを動かすためのプラグインだ。 Rails on GAEはRuby on RailsをGAEで動作させるために必要なタスクを予めインストールすることで、後は順番に従って進めるだけでJRuby on Railsができるようにな
Web デベロッパーの祭典に行ってきた。今回は、通路沸きに用意された比較的狭いスペースで開催された。 以下、メモと自分の勝手な感想をまとめておく。 クックパッドについて 毎日の料理を楽しみにすることで心からの笑顔を増やす 1998年にオープン 去年のリニューアルのときに Rails で作り直した 使い方 レシピをのせる レシピをさがす 月間ユーザ数 547万人 Rails サイト中世界7位 (from rails 100 wiki)、まさか1位がscribd.comとは 月間 2.8億 PV(PVでは、Rais サイト中世界3位) 登録レシピ数: 47万品 トラフィックは、16-18時くらいがピーク(夕飯を作る前に調べるユーザが多いとのこと) 秋からバレンタインにかけてトラフィックが伸びる(来週はピークだということで、最近はパフォーマンス向上に中心にやっていた) ユーザ数: 547万人(す
Ruby on RailsをJavaサーバで動かす4つのメリット まずは、JRuby on RailsをJavaのAPサーバ上で動かすメリットを考えてみましょう。その最大のメリットはJVM(Java仮想マシン)上で動作する点が挙げられます。JVMで実行することで、以下の4つのメリットを享受できます。 JVMはエンタープライズ環境での動作実績も多く、非常に安定した実行環境を手に入れることができる JVM上でJRubyを実行する場合、AOT(Ahead Of Time)およびJIT(Just In Time)方式でコンパイルする。従って、コンパイル後はインタプリタ形式よりも高速に動作する(※注1) Javaの豊富な機能を使い、さまざまな拡張が可能 JRuby on Railsが動作するAPサーバもTomcatやWebSphere上で動作確認が報告されている JDBCを使って対応DBを増やしたり
松江市は2008年6月12日,同市が運営する「松江空き店舗物件情報サイト」のソースコードを公開した。まつもとゆきひろ氏が在籍する松江市のIT企業であるネットワーク応用通信研究所がRuby on Railsで開発した。 「松江空き店舗物件情報サイト」はGoogle Mapsとのマッシュアップにより地図上で中心市街の空き店舗を探すことができるサイト。松江市が2008年4月に開設した(関連記事)。松江市の地域SNSである松江SNS(関連記事)の「クチコミマップ」の情報をRSSで取得し表示できる。 空き店舗物件情報サイトのソースコードは松江市のホームページで配布されている。ライセンスはThe MIT License。誰でも無償で使用できる。 松江市はRubyによる地域の産業振興を図る「Ruby City Matsueプロジェクト」を推進している。同市の高額医療・高額介護合算制度システムをRubyで
WindowsにRuby on RailsとMySQLを入れ環境を作り、その上で簡単なブックマークアプリケーションを作るまでを記録したムービー。編集ナシでホントに10分以内でアプリケーションを構築してます。 詳しくは、2005年11月18日発売の技術評論社 SoftwareDesign 2005年12月号で解説予定ですしました。 Rails+MySQLインストール編 アプリケーション編 追加情報 Web Developer Study @Sapporo - 2005/11/19 Rails + Selenium - OSC2006 Do 2006/07/15 更新情報 2006/07/15: OSC2006 Doで使った資料 Rails + Seleniumを公開 2005/11/19: Web Developer Study @Sapporoで使った資料を公開しています。 2005/1
APTにRailsが入ったのはありがたいけど、更新頻度やその他いろいろなバッドノウハウからmysqlとrubyとgemだけaptで入れてrails類はすべてgemから入れるのが良いと思います。 逆にgemからmysqlを入れても痛い目にあった気がするのでこちらも自分的にはバッド。 とりあえずmysql # apt-get install mysql-server Adminのパスワードを設定 # mysqladmin -u root password ****** rubyとgemを入れる # apt-get install rubygems # gem update --system gemで以下のエラーが出るようになる uninitialized constant Gem::GemRunner (NameError) /usr/bin/gemに以下を書き加える require 'rub
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く