2011-02-01 9 views
1

今週はPHPアプリケーションを可能な限り保護します。私はデータベースから多くのデータを取得するので、私は以下のコードを安全にするのに役立ついくつかの基本的なヒントが必要です。PHPでフェッチされたデータを保護する

ありがとう、ちょうど初心者です。

<?php 

mysqli_select_db($connect,"users"); 
$select="select * from members"; 
$result=mysqli_query($connect,$select); 
$row=mysqli_fetch_array($result); 


//this is what i want to secure -- down 

$a = $row['name']; 
$b = $row['add']; 
?> 

ありがとう。

+0

あなたはそれについて不安でしょうか? PHP変数にデータをサーバーに格納しています。まだブラウザには何も送られていません。 –

+1

どのような方法で保護しますか?私が見る限り、脆弱性はまったくありません。さて、より大きいコードがあるかもしれませんが、あなたが話していることを指定する必要があります – ircmaxell

答えて

1

エンコードあなたがXSSを避けるためにhtmlspecialchars()と、ブラウザに表示するユーザー入力/データベースからすべて

+1

'htmlentities'を使わないでください。適切な文字セットを設定するには、この場合は['htmlspecialchars'](http://us.php.net/manual/en/function.htmlspecialchars.php)の適切な関数を使用する必要があります。 'htmlentities'は、htmlspecialchars機能のスーパーセットであるという事実以外の観点から、セキュリティとはまったく無関係です。 – ircmaxell

+0

UPS!あなたは絶対に正しいです、ありがとう!私は自分の答えをhtmlentitiesからhtmlspecialcharsに変更しました。 – Marc

0

基本的にDBにデータを送信する前に(SQLインジェクションに対して)、そしてhtmlに出力する前に(XSSに対して)セキュリティを確保する必要があります。これらのことは重要ですが、スクリプト内ではほとんどすべてが無害です(また、後続のコードでエラーにつながる可能性もあります)。

0

最初に、データベースにデータを入力する際に​​セキュリティがありますか? データベースに挿入するときにデータをサニタイズしないと、コードはSQL Injectionになる可能性があります。そのために - http://php.net/manual/en/mysqli.real-escape-string.php

もう1つのことは、あなたのデータベースにhtmlとjavascriptを挿入することができ、それをエスケープしてそのデータをHTMLに印刷すると、Cross-Site-Scriptingになります。 http://bg.php.net/manual/en/function.htmlentities.phpを使用してデータをエスケープする必要があります。またはhttp://bg.php.net/manual/en/function.htmlspecialchars.php

セキュリティは大きな話題ですが、これが始まりです。最初に入力をエスケープしてから、出力を処理してください。

関連する問題