2016-05-01 5 views
0

にエスケープ私は、私は次のようにエスケープする必要があります知っているHtmlの

、これまでのところ、私は私が私のHTMLをエスケープする必要があることを見出した、XSSからの私のコードを安全にする必要があります。

< &lt; 
> &gt; 
( &#40; 
) &#41; 
# &#35; 
& &amp; 
" &quot; 

私は私のコードで上記の文字を変更するが、コードはブラウザ上の文字列として表示されます、私はそれらをエスケープするために基本的にどのように正常に動作するためにそれらをエスケープするか分からない、誰でもこれを助けることができますか?

+2

XSSとSQLインジェクションは、Googleに必要な用語です。 –

+1

ssh/sftp/ftp/webserver/firewall security:3 mysqlポートをオープンしているか、デフォルトのmongodbを匿名アクセスでインストールしている可能性があります(例えば – strangeqargo

答えて

1

あなたは入力フィールドと言っていますが、それはすべて重要ではありません。ご覧のとおり、PHPで決まっていないものは、ユーザの影響を受けることがあります。これを念頭に置いて、私はajaxコール、そしてroutingと呼んでいます。

たとえば、ユーザーフレンドリーなURLを使用していますか?その場合は、おそらくあなたのデータベースにURLをルーティングしますか?それは入力と変わりありません。 $_GETまたは$_POSTは脆弱性です。あなたがユーザーに影響を与えることができるように、これらの要求から得られるものは常にエスケープする必要があります。

は、これは、あなたが基本的に言う$_GETまたは$_POST、またはルーティング(も$_GETindex.php?page=pagenameを介してデータを送信するAJAX呼び出しを意味します。

これは$_GET['page']になり、データベースを通過させる場合はエスケープする必要があります。

+0

)元の質問が編集されていますほぼ完全に異なる質問に変わります。したがって、私の答えは完全にランダムであり、何か他のもののために意味されます。 – NoobishPro

0

あなたはSQLインジェクションだけでなく、サーバー自体(PHP、Webサーバーなど)のセキュリティ上の問題も気にする必要があります。したがって、ソフトウェアが最新であることに常に気を配り、例えばパラメータ化されたクエリでPDOを使用することでSQLインジェクションを簡単に防止する必要があります。

1

外部ユーザーはデータベースに直接アクセスできますか?もしそうなら、彼らは力dbパスワード(攻撃者は最初の試行でデフォルトパスワードになる)をブルートでき、そこからあなたのウェブサイトをホストしているマシンを完全にコントロールすることができるかもしれません。 thisおよびthisを参照してください。公共のインターネットからデータベースに直接アクセスしないでください。

一般に、nmapを使用して、開いているポートを確認する必要があります。必要最小限のポートだけを開いてください。他のどのポートも攻撃者のために開かれたドアである可能性があります。攻撃者がシステム上でシェルを取得した場合、システムを停止し、ごみをホストし、ログイン時にパスワードを取得するバックドアを挿入したり、その他の悪質なものを必要とすることができます。例えば、recentlyの白い帽子のハッカーは、Facebookのネットワーク上でシェルアクセスを取得し、そのシステムのスタッフのパスワードを回復するためのバックドアを正確に発見しました。

あなたのウェブサイトをホストしているソフトウェアはどうですか?それは最新ですか?古くなったPHPシステムには、ハッカーが悪用しがちなシェルにアクセスするための脆弱性がたくさんあります。

最後に、あなたのウェブサイトにログインしてコンテンツを更新するにはどうすればよいですか? VPN経由ですか?二要素認証が必要ですか?そうでない場合、攻撃者はあなたと同じ方法でウェブサイトの管理コンテンツにアクセスし、あなたのパスワードをブルートフォースすることができます。おお!

関連する問題