2016-04-03 6 views
0

私はアンドロイドアプリからアクセスするデータベースをホストするのに000webhostサイトを使用しています。私はそれを実行すると、私はそれはそれは「アクセスが@(:YESパスワードを使用して) 『localhost』のユーザmy_user 'の拒否」接続することはできませんと言い、このPHPスクリプトで実際のユーザー名、パスワード、dbnameをマスキング

<?php 
    $connection = mysqli_connect("localhost", "my_user", "my_password", "my_db"); 
... 

のようなPHPスクリプトを作成しました。これは私が使用したチュートリアルと同じ構文です。彼らは同じサイトを使用しています。

しかし、私はそれが動作

<?php 
    $connection = mysqli_connect("mysql1.000webhost.com", "a80023423_as22", "abc222", "a80023423_as22"); 

パラメータに真の値を与える場合。

誰かがアドレスバーに自分のURLを入力すると、自分のすべてのphpファイルにアクセスできるので、自分のパスワードとdbに接続するために必要なすべてのデータが渡されます。私はいくつかのブログやサイト、さらにはいくつかの回答を積み重ねてきましたが、これらの値をマスクする方法を理解できませんでした。

ヒントがあれば教えてください。すでに投稿されている回答へのリンクですか?

+4

通常の訪問者はphpファイルのソースコードを見ることはできません。これらのファイルによって生成された出力のみが表示されます。 –

+0

あなたのAndroidアプリケーションからデータベースにアクセスすべきではありません。それはセキュリティに関する大きな問題です。その代わりに、情報を取得する方法としてjsonやxmlなどを使用し、反対側から情報を受け取るためにいくつかの残りのAPIを使用するか、このフレームワークを確認するか、またはhttp://www.slimframework.com/を参照してください。 – Saikios

+0

Can not they .phpファイルをデコードしますか?また、私はなぜ "my_user"が "a80023423_as22"として動作していないのだろうか – Blogger

答えて

0

display_errors iniディレクティブを1に設定して、php iniをE_ALL & ~E_NOTICEに設定します。これは、失敗したmysqliリクエストをプレーンテキストとして出力する理由です。これはテスト環境では望ましいかもしれませんが、実際には生産環境にはありません。

php.iniファイルを編集できる場合は、display_errorsディレクティブを0に設定できます。

ますiniファイルを変更できない場合は、スクリプトの先頭にこのコードを含める必要があります。

error_reporting(E_ALL); 
ini_set("display_errors", 0); 

これがユーザーに表示されてから失敗したmysqlのログインのようなエラーを防止します。実際のユーザ名とパスワードをphpファイルの中に入れても安全です。

+0

プロダクションで異なるエラー報告レベルを設定する理由は1つだけありません。 devと同じように保つ理由はたくさんあります。そして、devでそれはE_ALLでなければなりません –

+0

'error_reporting'行を完全に削除してください。 – Torchify

+0

まあ、それは答えに無関係ですが、コードではとにかく残る必要がありますので、それを保つのが良いです。 –

関連する問題