私はphpスクリプトに値を送るアプリを作っています。次に、php スクリプトは Mysql データベースに接続し、JSON 配列を返します。そして、アプリがそれを読み取ります。安全を確保するには?今のところ、私は安全対策を使用していません。
1 に答える
場合によっては、これは非常に大きなトピックであるため、真の答えを得るには本に相当する資料が必要になります。
どのような「安全対策」について尋ねていますか?
Web サーバーの関与について話している場合は、まず Web サーバーを保護し、最も一般的な攻撃方法から保護するのに十分なほどスマートな API を構築する必要があります。URL に何かを入力するだけで、意図したユーザーができることと同じことを他の人ができないようにする必要があります。これは、ユーザーに API へのアクセスを許可する前に、ユーザーを検証する必要があることを意味します。
これを行う最も一般的な方法は、サーバーとクライアントだけが知っている「秘密鍵」を共有することです。したがって、電話を使用するユーザーには特定のキーがあり、サーバーにはキーがあります。ユーザーはデータをサーバーに送信し、検証ハッシュ (sha1(KEY+DATA) など) も送信します。サーバーはデータを受信し、ハッシュが同じであることを確認します。リクエストと一緒にキー自体を送信しないでください。
テストする必要があるもう 1 つのことは、リプレイ攻撃です。誰かが通信を傍受した場合、被害を限定する必要があります。これは通常、リクエストとともにタイムスタンプを送信し、サーバーがタイムスタンプが許容範囲内にあるかどうかを確認することによって行われます。そのため、誰かが後で同じリクエストを再度送信すると、タイムスタンプが異なるために失敗します。入力データの検証ではタイムスタンプも考慮されるため、サーバーはこれをチェックします。
次に、サーバーから返されたデータが正しいことを確認する必要があります。したがって、サーバーは、電話がチェックする検証ハッシュも作成し、データが電話に送り返されている間に誰かがデータを変更していないことを確認します.
追加のレイヤーとして、AES/Rijndael 256 ビット暗号化などの強力な暗号化アルゴリズムを使用して、送信 (および API から受信) されるデータを暗号化することもできます。これにより、データを開くために必要なキーでデータが暗号化されます。電話とサーバーがキーを知っていて、他の誰も知らない場合、データは安全に送信できます。
次に、接続を HTTPS/SSL にする必要があります。これにより、通信が傍受されるのを防ぐことができます。ただし、これは、誰かが既に電話にアクセスしている場合には役に立ちません。そのため、前述の他の方法も使用することをお勧めします。
携帯電話に関しては、そのセキュリティを損なう可能性のあるアプリがインストールされていない限り、それ自体はかなり安全です. また、電話だけが通信するので安全だと考えて、Web サーバーをあまり保護できないと考えている場合、ハッカーは自分の電話での通信を簡単に傍受して、Web サービス API の基本を理解し、次に、すべてのドアを開きます。そのため、セキュリティ層が最大のものから最小のものへと進むようにしてください。Web サーバーは、システム内で群を抜いて最大のエンティティです。
ご覧のとおり、これは学習に長い時間がかかる可能性のある非常に大きなトピックです。しかし、あなたが何を求めていたのか正確にわからなければ、これ以上あなたを助けることはできません.