[The Interview]エンジニア向けQAサイト「teratail」とは

第4回 若手エンジニア必読 teratail開発者が贈る! 一生役立つエンジニアの基礎

この記事を読むのに必要な時間:およそ 3 分

Webアプリケーションのセキュリティ対策はどうする?

編集部:初心者のうちは難しく感じるだろうなと思った質問としてサーバーのセキュリティ対策について教えて下さいというのがありましたが,セキュリティ対策にはどういった視点で取り組むべきでしょうか。

本橋氏:まず,セキュリティ対策の重要性を理解することがスタート地点になります。特にエンジニアとして働き始めたばかりだと,とにかく動かすことに目が行きがちで,セキュリティには意識が向かない人が多いと思います。ただ,ぜい弱性を突かれて攻撃を受ければ,たとえば個人情報流出による多額の損害賠償やサービスの停止など,非常に大きな損失につながる可能性もあるわけです。そこを理解できないと,なかなか身につかないですよね。

編集部:初心者が犯しやすいミスには,どういったものがありますか。

本橋氏:SQLインジェクションやOSコマンドインジェクションなど,一般的なぜい弱性に対する対応が不十分であったり,あるいはセキュリティ面でのチェックが甘かったりというミスですね。

編集部:具体的にはどのようにチェックすればよいのでしょうか。

寺尾氏:自分の書いたコードに対して一般的な攻撃手法を試すとどうなるかを確かめる。たとえば,パラメータの値に想定していない内容を入れるとどうなるか。そうやって自分で攻撃してみるというのはあると思います。

本橋氏:攻撃手法は増えていくので,最初に勉強したあとも新たな攻撃手法の情報をキャッチして,それを自分で試してみる。擬似的に攻撃してくれるツールもたくさんあるので,そういったものも活用するとよいのではないでしょうか。

そのとき,ツールがすべてセーフだと判定しても,何を調べてセーフと言っているのかを把握することで,たまたまセーフだったのか,それともセーフになるべくしてなったのかが見えてきます。インプットとアウトプットだけを見るのではなく,中間のところも理解しようとすれば大丈夫かな,と思いますね。

寺尾氏:そういう意識は持っていてほしいよね。

本橋氏:持っていてほしいです。そこを意識できていないサービスには,僕はメールアドレスなどの個人情報を預けたくないですね。

しっかり回答がもらえる質問の仕方とは?

編集部:mysqlでデータベースへの接続はできるが図2という質問があって,ちょっと質問が長いなと感じたのですがいかがでしょうか。

図2 ⁠mysqlでデータベースへの接続はできるが」という質問に対する回答者と質問者のやりとり

図2 「mysqlでデータベースへの接続はできるが」という質問に対する回答者と質問者のやりとり

本橋氏:たぶん,質問された方は真面目に書かれているんですよね。思う限りのことを。なので,質問の仕方としては正しいんじゃないかと思います。

寺尾氏:自分のやったこととやりたいことが,ちゃんと明確になっている。それを質問の中で提示しているので,努力しているのが見えるし。

編集部:長くなっても丁寧に質問したほうがよいということですね。

寺尾氏:そうですね。この質問をした人は,⁠こういう手順でやったけど,できませんでした」と何をしたかを書いているので,⁠じゃあこれを試して」って,回答者が次の手を出しやすいんですよね。経過をちゃんと書くのは,質問して回答をもらううえで一番大事かなと思います。もし,途中経過を書かずに「できませんでした」だけしか書いていなかったら,回答者も答えづらいでしょうし。

編集部:そのほかに,質問するうえでのポイントってありますか。

本橋氏:問題のある個所とその前後のソースコード,それとエラーメッセージはまず必要です。それがないと,糸口はつかめないと思うので。

寺尾氏:ソースコードの何行目のエラーが出ていますと言われても,ソースコードがなかったらわからないしね。

本橋氏:あとは何をしたいか,何をするときにエラーが出たのか。何を書いたのか,その前はできていたのか。そういった情報があると,質問の精度は高いと感じます。質問する側なわけですから,自分が持っている情報は伝えなきゃいけない。

寺尾氏:それって,文章でも口頭でも変わらないんですよ。職場の先輩のところに行って,動きませんと言っても答えは得られないと思うので。

本橋氏:「そうか」としか言えませんからね(笑)

寺尾氏:何をしたくて,何が動かないのかをちゃんと説明しないと答えようがない。たぶん,そこは職場の先輩に聞くときも,teratailで聞くときも変わらないポイントだと思います。

エンジニアをバックアップし,業界に貢献していきたい

編集部:最後に,読者に向けて,teratailの名前の由来となった寺尾さんからメッセージをお願いします。

寺尾氏:そうですね。エンジニアになりたいという人が減ってきていると言われている中で,teratailがこれからエンジニアになる人をバックアップする存在になり,エンジニアが増えていく。そういった形で貢献していきたいと考えています。

編集部:いろいろとお話を伺わせていただき,ありがとうございました。

寺尾 貢氏(左)と本橋 佑介氏(右)

寺尾 貢氏(左)と本橋 佑介氏(右)

teratail(テラテイル)
http://teratail.com
取材協力/株式会社レバレジーズ
http://leverages.jp