質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

ログインシステム(WEB) 自作?危険?セキュリティ対策は?

ElecDove
ElecDove

総合スコア254

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

7回答

6評価

12クリップ

23701閲覧

投稿2016/05/04 07:19

編集2016/05/04 09:01

いつもお世話になります。

ログイン型の小規模WEBサービスを作りたいと思っています。

ユーザーは特定少数(100人以下)なので、不特定多数に公開するサービスほどセキュリティに神経質になる必要性は少ないのかもしれないですが、それでもやはり脆弱の温床になることは避けたいと思っています。

一度、そのようなシステムをPerlで作ったことはあります。(100時間~くらいかかりました)
そのときはライブラリを極力使わず、可能な限り自分でコーディングしました。
(使ったのは、HTMKL::Templateと文字コード変換系ぐらい)
よくPerlではCGI.pmを使うようですが、「自分でできる部分はライブラリを使わない」をモットーにがんばってました・・・

別にそのときのシステムに不満があるわけではないのですが、そのときはDBを使わず、すべてテキストファイルにさまざまな情報を保存していました。(ユーザーの情報を)
今回、MySQLを使ってみようと思っているのですが、「自作のログインシステムは脆弱性の温床になる」という記事を見かけ躊躇しております。

どうしても自分で把握できない部分(具体的にはライブラリやDBアクセス)への攻撃が想像つきません。

大量の個人情報を扱う、ということはないのですが、やはりこの一言が気になってしまいました。
仮にCGIに脆弱性がなくてもOSの設定に脆弱性があったら元も子もないと思います。

まとめると
・可能な限り外部ライブラリを使わずに自作したい
・ログインシステムは自作してもよいのか(ダメならオープンソース等教えてください)
・脆弱性を生まないためにはどうすればよいのか(参考サイト/書籍を教えてください)
このあたりについて皆様の意見をいただけますと幸いです。
(OSはUbuntuを想定しています)


以下指摘がありましたので別の質問として投稿させていただきます
既に回答くださった方ありがとうございます。今後は別スレでお願いいたします

また、今回の件に限らず、攻撃に対する対策というものがいまいちよくわかっていません。
自宅サーバーを持ってはいますが、ほとんどのソフトをデフォルト設定で使っているような状態です。
(せいぜいデフォルトのポート番号を変更する程度)
(SSH、FTP、HTTP、ファイル共有(Localで使用)、無線LANのAP、ゲーム鯖(Minecraft)等)
どれも不特定多数を相手にするものではありませんが、インターネットからアクセスできる以上、最低限のセキュリティ対策はしたいと思っています。(盗まれて困る情報は皆無ですが、踏み台にされるのが怖い)

攻撃に対する対策について詳しいサイト等ありましたら教えていただけますと幸いです。
(かならずこれは読むべき!!!という書籍がありましたらあわせて紹介していただけると幸いです)

また、今回の件に限らず、攻撃に対する対策というものがいまいちよくわかっていません。
自宅サーバーを持ってはいますが、ほとんどのソフトをデフォルト設定で使っているような状態です。
(せいぜいデフォルトのポート番号を変更する程度)

攻撃に対する対策について詳しいサイト等ありましたら教えていただけますと幸いです。
(絶対にこれがいい!というような書籍がありましたらあわせて紹介していただけると幸いです)

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

退会済みユーザー
退会済みユーザー

2016/05/04 08:04

せっかくの質問サイトだし、今後おなじ質問をもつ人の悩みを解決できる可能性もあるので、質問は1タイトルにつき1つにされてはいかがですか? 1タイトルに複数の質問をすると回答もブレると思いますよ。
ElecDove
ElecDove

2016/05/04 08:28

te2jiさん 確かにそうでした 後半部分を分けて再投稿させていただきます

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。