気の向くままに辿るIT/ICT/IoT
ショップ構築

入力チェック・サニタイジング・入力制限

ホーム前へ次へ
入力チェック・サニタイジング・入力制限とは?

入力チェック・サニタイジング・入力制限

ネットショップにおけるセキュリティ対策

 不特定多数の方に開放したホームページ上で販売を行うネットショップ・オンラインショップにおける電子商取引では、ユーザーの入力情報を保護する事が必須であり、更に外部からの攻撃に備え十二分な対策を講じる必要があります。

<< ショッピングカートの安易な公開は禁物

注意が必要なショッピングカートCGIプログラム1

 配布または販売されているショッピングカートCGIの中には、多くの人が知っているであろう大手の提供するものでさえ「何も入力されていない」という以外、ほとんど入力チェックをしていないように見えるものもあります。

適切な入力チェックとサニタイジングを行う

 入力チェックがほとんど行われていないように見える場合でもプログラム内部での入力チェックとその対処、サニタイジングが厳密に行われていれば、誤入力や不正な入力があっても対処できている事になりますし、入力書式も内部で書式変換できる入力値であればエラー出力を極力使用しない使い勝手のいいカートという見方もできます。

 しかし、適切な入力チェックとサニタイジングが行われていないものは情報保護が重要なショッピングカートCGIスクリプトとしては論外です。

 入力チェックは、ユーザーの入力値をチェックしてシステムで想定するデータと異なる場合にメッセージを表示するなどの対応であり、サニタイジングは、一部のサイバー攻撃や心ないいたずらに対する無害化の事です。

 サニタイジングとしては、サーバOSがLinuxかWindowsか、スクリプト言語は何か、またプログラムが行う処理やケースによって若干違いがあります。

 サーバOSにより違いがあるのは、OS操作に関わるコマンドの違いと改行の扱いの違いであり、スクリプト言語による違いもほぼOSコマンドに近い違いと[;](セミコロン)などの行終端文字の違い、ケースによる違いは、そこで利用する配列要素の区切りやそのケースで悪用される可能性のある値やコマンドによるものです。

 更に意外と忘れがちなのものとして、入力制限があります。

入力制限を行う

 入力制限は入力チェックとは別に、ブラウザからのみ、かつカートで用意したフォームのみ利用するのであれば、URLの直接入力を制限をする事で無用な対処をする必要がなくなる場合もあり、より安全なシステムとなりますし、更にフォームの「GET」による受け渡しをしない運用にすれば、さらにより安全になります。

>> FORMのデータ取得ではGETを禁止しPOSTを使う

ショッピングカートCGIに求められる最低限の品質

 ショッピングカートに必要な品質確保する為の大前提の対策。

ショッピングカートCGIとその他のセキュリティ確保

 セキュリティを考える上でショッピングカートCGIの対策を講じただけでは不足です。

 ショッピングカートCGIで利用する複数のファイルと公開するウェブサーバ上のセキュリティ設定とディレクトリ保護、ウェブサーバへのアップロード、ターミナルエミュレータ利用におけるセキュアな接続なども必要です。

 また、ログインID、パスワードはセキュアなウェブサーバ、セキュアなFTPソフト、セキュアなターミナルエミュレータにおいても徹底管理が必須です。

cookieのセキュリティ設定

 ネット上でショッピング機能を利用する場合、「一連の操作をしているユーザー」を特定する為にはcookie/クッキーの設定が不可欠です。

セキュリティの必要性と限界

 ここまでのセキュリティは最低限必要であり、cookieの実装によりショッピングカートを一応組み込む事はできますが、残念ながら完全にセキュリティが確保されるわけではありません。

 また、善意のアクセスの拒否か、またはセキュリティ確保の二者択一を迫られるケースもあります。

ホーム前へ次へ