1. 超実践AI論
  2. 【自社サイトも要注意】現役エ..
【自社サイトも要注意】現役エンジニアが公開アプリで必ずやるセキュリティ対策4選
2026-11-15 11:23

【自社サイトも要注意】現役エンジニアが公開アプリで必ずやるセキュリティ対策4選

おたよりを送る

自社のサイトやアプリを公開すると、ユーザーの個人情報や入力フォームが攻撃に狙われます。現役エンジニアのぼくが、公開するアプリやサイトで必ずやる4つのセキュリティ対策を、導入しやすいサービスとともに解説します。


非公開アプリでもやるべきセキュリティ対策

https://open.spotify.com/episode/6RfhDv0dPVYSZBpopXUH2U


AI活用、アプリ・Webサイト開発のご相談は公式LINEまたはお問い合わせページへ。現役エンジニアがAIと技術力を活かし、高品質・低コストで対応します。相談は無料です


公式LINE

⁠https://lin.ee/89PQ9tH


お問い合わせページ

⁠https://hataracraft.com/contact/?utm_source=spotify&utm_medium=audio&utm_campaign=public-app-security


今回の内容の解説記事

⁠https://hataracraft.com/articles/public-app-security?utm_source=spotify&utm_medium=audio&utm_campaign=public-app-security


【目次】

はじめに

機密情報を持たない

決済はStripeに任せる

ログインはパスキーやSSOで

フォームを守る

アクセス制限

bot対策

入力チェック

クライアントとサーバー

入力チェックはサーバーで

CSPで配信元を制限する

XSSを防ぐ

フォーム対策のまとめ

Googleフォームという選択肢

監視で異常に気づく

監視の対象と通知先

データベースのバックアップ

バックアップがないと取り返しがつかない

まとめ

感想

まだ感想はありません。最初の1件を書きましょう!

00:00
おすすめは、パスキーやSSOです。 入力チェックは、クライアントではなく、必ずサーバーでやらなければいけません。
入力フォームなどの、外部からの値を受け付ける場所は、最も狙われやすい攻撃ポイントです。
こんにちは、超実践AI論のたいちです。今回は、現役エンジニアが公開するアプリやサイトで、必ずやるセキュリティ対策4選、というテーマでお話しします。
非公開アプリでもやるべきセキュリティ対策は、過去に解説しているので、概要欄から見てください。
今回は、自社の最低アプリなど、自分以外の人も使うシステムでやるべき、セキュリティ対策を4つ紹介します。
1つ目のセキュリティ対策は、機密情報を持たないことです。
例えば、クレジットカード情報や、パスワード、名前、住所など、
流出したら困る情報の管理は、外部サービスに任せましょう。
具体例を挙げると、決済は、ストライプというサービスを使えば、自社では決済情報を持たずに、
ネットでの商品販売や、有料コンテンツの作成ができます。
ストライプが決済の仕組みや、決済情報の管理をやってくれるので、
自社でクレジットカード番号を持つ必要などがありません。
3.6%の決済手数料は取られますが、情報漏洩した時に、困る被害と比べれば、かなり安いです。
クロードコードなどのAIに、決済周りはストライプを使ってもらえば、導入も簡単にできます。
また、ログインでも、メールアドレスとパスワードによる登録はやめたほうがいいです。
パスワードは、流出する恐れがあるからです。おすすめは、パスキーやSSOです。
パスキーというのは、スマホやタブレット、パソコン自体の指紋認証や公認証などの認証機能を使って、
本人であることを証明する仕組みです。
パスキーのログインなら、メールアドレスもパスワードも自社で持つ必要はありません。
SSOは、シングルサインオンの略で、特定のサービスの認証情報で、複数のサービスを利用できる仕組みです。
例えば、GoogleアカウントやFacebookアカウントなどで、ログインできるサイトがよくありますよね。あれがSSOです。
SSOでも、ログイン情報はGoogleやFacebook側が持っていて、
自社では保持しないので、攻撃されても流出するものはありません。
マーケティングのために、メールアドレスくらいは必要かもしれませんが、それ以外の住所などの個人情報は、
流出した時のリスクも考慮して、自社で持つかを検討する必要があります。
公開アプリでやるべきセキュリティ対策の2つ目が、フォームを守ることです。
入力フォームなどの、外部からの値を受け付ける場所は、最も狙われやすい攻撃ポイントです。
フォームのセキュリティ対策でやるべきことは、アクセス制限、ボット対策、入力チェック、CSPの4つです。
アクセス制限は分かりやすいです。例えば、1分間に同じIPアドレスから何回以上のアクセスがあったら、
ブロックするとか、そういったイメージです。IPアドレスとは、インターネット上の住所のことです。
他にも、特定の国からアクセスを遮断するなど、場所によって制限することもできます。
アクセス制限をすれば、攻撃者が侵入を試みて何回もアクセスするのを防げますし、
大量の不正アクセスで、アプリやサイトに負荷がかかって、費用がかさんだりすることも防げます。
フォームを守る2つ目の対策であるボット対策とは、入力フォームなどにアクセスしたときに、
私はロボットではありません、みたいなチェックをする箇所が表示されて、
03:00
チェックをするとバイクの画像を選んでください、みたいなパネル選択をするあれです。
あれは、リキャプチャというツールによるボット対策です。
不正アクセスは、ボットというプログラムで自動かつ大量に行われるので、
リキャプチャのようなボット対策をつけるだけで、大部分は防げます。
リキャプチャの他にも、クラウドフレアのターンスタイルなど、無料で使えるボット対策ツールはたくさんあります。
ユーザーの入力を受け付けるフォームには、必ずつけるようにしましょう。
フォームのセキュリティ対策の3つ目が、入力チェックです。
入力チェックとは、ユーザーが入力した値に、コードや特殊な文字などが入っていないかを検証することです。
なぜ検証が必要かというと、フォームの入力欄にコードを直接書いて、
データベースに侵入する攻撃手法などがあるからです。この攻撃はSQLインジェクションと言います。
なので、フォームの入力値は不正な値が入っていないかを必ず検証する必要があります。
不正な値の検証はサーバー側でやります。ここでサーバーという用語について解説します。
アプリケーションはクライアントとサーバーという2つの端末でプログラムが動いています。
クライアントとはアプリを使っている人のスマホやパソコンのことです。
一方でサーバーとはクライアントが画面に表示したり、登録したりする情報を処理するパソコンのことです。
クライアントとサーバーはXをイメージすると分かりやすいです。
Xのタイムラインでは世界中の人の投稿を見られますよね。
でもその世界中の人の投稿データはスマホ内にあるわけではありません。
もしスマホの中にあったらあっという間に容量がいっぱいになってしまいます。
だからタイムラインの情報はクライアントであるスマホ端末がX社のサーバーから取ってきて画面に表示しているというわけです。
そしてXで投稿をしたらそれもX社のサーバーに保存されます。
話をクライアントとサーバーから入力フォームのチェックに戻します。
入力チェックはクライアントではなく必ずサーバーでやらなければいけません。
なぜならクライアントのチェックはユーザーが自由にオフにできるからです。
クライアント側の処理は主にJavaScriptというプログラムで書かれているのですが、
ブラウザーの機能でJavaScriptはいつでもオフにできます。
オフにすればいくらクライアントで厳重にチェック処理をやっていても意味がありません。
だから不正な入力のチェックは必ずサーバー側でやる必要があります。
入力フォームの最後のセキュリティ対策はCSPです。
CSPとはコンテンツセキュリティポリシーの略です。
先ほど出てきたJavaScriptや画像などをどこから配信されているものなら、
ブラウザが実行していいかを決めるのがCSPです。
ブラウザとはChromeやSafariなどのことです。
例えば自分のアプリサーバーから配信されているものはOK、
それ以外から配信されているものはNGといったルールをCSPで決めることができます。
このCSPのルールに沿って、ChromeやSafariなどのブラウザはJavaScriptや画像をどうするかを決めます。
CSPを設定していないと、自分のサイトやアプリに開いた人の情報を抜き取る不正なプログラムを押し込まれたりしたら、
それらもブラウザに許可されてしまいます。
この不正なプログラムを押し込む攻撃はXSSと書いてクロスサイトスクリプティングと呼びます。
クロスサイトスクリプティングをされると、アプリやサイトを見た人が不正プログラムによって被害をこむることになります。
06:01
CSPでJavaScriptなどの実行をブラウザに許可する配信元を決めておけば、
外部の不正なプログラムを押し込まれても実行はされません。
もちろん、CSPだけを設定すれば安全というわけではなく、
先ほどのサーバー側の入力チェックなどの対策もセットでやる前提です。
入力フォームの4つのセキュリティ対策をまとめます。
1つ目がアクセス制限で不審なアクセスをブロックすること。
2つ目がリキャプチャやクラウドフレアターンスタイルなどのボットチェックを導入すること。
3つ目がサーバー側で不正な入力値をチェックすること。
4つ目がCSPでプログラムや画像の実行をブラウザに許可する配信元を制限することです。
入力フォームを1つだけでここまでのセキュリティ対策をするのは面倒という人は、
Googleフォームを置くのがおすすめです。
Googleフォームなら一通りのセキュリティ対策はすでに実装されています。
なので、僕たち開発者側はホームの入力値を使って何か処理をするなら、
サーバー側での不正な値チェックはする必要があります。
ですが、Googleフォームでは入力チェック以外のセキュリティ対策は省略して大丈夫です。
フォームのセキュリティ対策の話はここまでにして、
引き続き、公開アプリでやるべきセキュリティ対策の3つ目に戻ります。
その3つ目は監視です。監視とは、アプリの異常事態に気づける仕組みのことです。
サーバー側のメモリやデータベースの負荷を常に監視して、
事前に決めた指揮地を超えたら通知するのが監視の一例です。
通知先はスラックやLINE、メールなど何でも良いです。
監視している値が、普段とかけ離れた数値が出たら、それはサーバーに故障などがあるか、
もしくは攻撃を受けて大量にアクセスされているか、
SNSやネットニュースなど注目される材料があって、一時的にアクセスが増加しているかのいずれかです。
数値が上がった原因が何であれ、アプリの管理者が気づけないのは問題です。
アプリが落ちてしまうかもしれませんし、長期間攻撃され続けるかもしれません。
なので、公開しているアプリには必ず監視の仕組みを入れます。
監視の対象は、先ほど話したサーバーのメモリやデータベースの負荷以外にも、
エラーログや許可されていないアドレスや端末からのアクセスを通知する、といったものもよくあります。
クラウドフレアなどのアプリのサーバーを置くためのホスティングサービスは、大抵監視の仕組みもついているので、
まずはAIに聞いたりして、どんなものを監視できるかを知ることが重要です。
監視できるものが分かったら、アプリの異常に気づくために、何を監視するか、どこへ通知するかを決めましょう。
公開アプリのセキュリティ対策、最後の4つ目は、データベースのバックアップです。
アプリなどのソースコードは、一般的にGitHubなどのバージョン管理システムに入っています。
なので、ソースコードはバージョン管理システム自体がバックアップにもなります。
ですが、データベースはバージョン管理システムには入れないのが一般的です。
まず、データベースは履歴を管理する意味がありませんし、バージョン管理システムに入れるには容量が大きすぎます。
アプリのデータは、期間が経つほどどんどん溜まっていくので、
それを全部バージョン管理システムに入れていたら、履歴が大きすぎて処理がどんどん重くなってしまいます。
なので、データベースのバックアップはバージョン管理システムとは別で取る必要があります。
09:01
データベースのバックアップがないと、自分やAIの誤操作、もしくはサイバー攻撃でデータを失った時に取り返しがつきません。
バックアップの仕組みも、先ほどの監視と同じように、クラウドフレアなどのホスティングサービスには標準であるので、調べて導入しましょう。
多少運用や俯瞰にコストがかかったとしても、データを失った時の損失に比べれば安いものです。
ここで一つお知らせです。
業務のAI活用の個別サポートや、研修、システム開発などのお仕事は、概要欄の公式LINEからお問い合わせください。
相談は無料です。
動画の内容やその他のご質問にも公式LINEで回答しています。
今回の内容をまとめます。
今回は、外部に公開するアプリやサイトで、必ずやるべきセキュリティ対策を4つ紹介しました。
1つ目は、機密情報をなるべく持たないこと。
パスワードやクレジットカード番号などの決済情報などは、流出した時に損害が大きいです。
だからこそ、自分では持たず、パスキーやSSOという外部サービスによるログイン、ストライプなどの決済サービスを使います。
こうすれば、機密情報の保管も管理も外部サービスに丸投げできます。
ストライプの決済手数料3.6%など、多少コストがかかっても、自前でセキュリティ対策をしたり、流出時の損害を考えると安いものです。
2つ目のセキュリティ対策が、フォームを守ることです。
ユーザーが自由に入力できるフォームは攻撃の入り口にもなります。
IPアドレスや接続頻度によるアクセス制限、リキャプチャやクラウドフレアターンスタイルなどによるボット対策、
サーバー側での不正の値のチェック、
CSPでプログラムや画像の処理をブラウザに許可する配信元を制限、という4つの対策でフォームを守りましょう。
対策が面倒なら、ある程度のセキュリティ対策をされている、Googleフォームとサーバー側の入力チェックだけで済ませるのも手です。
3つ目のセキュリティ対策は、アプリの異常に気づくための監視の導入です。
具体的には、サーバーのメモリやデータベースの負荷、
エラーログなどを監視して、異常の値はすぐに検知して通知できるようにしておきます。
最後のセキュリティ対策が、データベースのバックアップです。
GitHubなどのバージョン管理システムでは、データベースはバックアップされないので、
クラウドフレアなどの自分が使っているホスティングサービスのバックアップを使って、
データが消えてもすぐに取り戻せるようにしておきましょう。
今回話した4つのセキュリティ対策で、自分のアプリに足りないものがあれば、ぜひ導入してみてください。
概要欄にも今回の内容を解説した記事を貼っておきます。それでは今日はこの辺で。
11:23

コメント

スクロール