ホームページ  >  記事  >  バックエンド開発  >  php Webリクエストのセキュリティ処理

php Webリクエストのセキュリティ処理

不言
不言オリジナル
2018-07-05 15:27:411784ブラウズ

1. urlencode と rawurlencode の違い

<?php 
test(&#39;https://tieba.baidu.com/f?kw=2&fr=wwwt&#39;);
test(&#39;:/?= &#&#39;);
test(&#39;测试&#39;);
function test($s)
{
    echo "<b>urlencode(&#39;$s&#39;)</b> = [<b>";
    var_dump(urlencode($s));
    echo "</b>]<br/>";
    echo "<b>rawurlencode(&#39;$s&#39;)</b> = [<b>";
    var_dump(rawurlencode($s));
    echo "</b>]<br/>";
}

//运行结果
urlencode(&#39;https://tieba.baidu.com/f?kw=2&fr=wwwt&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:9:string &#39;https%3A%2F%2Ftieba.baidu.com%2Ff%3Fkw%3D2%26fr%3Dwwwt&#39; (length=54)
]
rawurlencode(&#39;https://tieba.baidu.com/f?kw=2&fr=wwwt&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:12:string &#39;https%3A%2F%2Ftieba.baidu.com%2Ff%3Fkw%3D2%26fr%3Dwwwt&#39; (length=54)
]
urlencode(&#39;:/?= &#&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:9:string &#39;%3A%2F%3F%3D+%26%23&#39; (length=19)
]
rawurlencode(&#39;:/?= &#&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:12:string &#39;%3A%2F%3F%3D%20%26%23&#39; (length=21)
]
urlencode(&#39;测试&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:9:string &#39;%E6%B5%8B%E8%AF%95&#39; (length=18)
]
rawurlencode(&#39;测试&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:12:string &#39;%E6%B5%8B%E8%AF%95&#39; (length=18)
]

上記の実行結果からわかるように、文字、数字、特殊文字を処理する場合、urlencode と rawurlencode の 2 つのメソッドの結果は同じです。記号と中国語。唯一の違いはスペースの処理です。urlencode は " " として処理され、rawurlencode は " " として処理されます。

2. 関数 Strip_tags: HTML タグと PHP タグを削除します

注: この関数は、文字列に含まれる HTML および PHP タグ文字列を削除できます。文字列の HTML タグと PHP タグがもともと間違っている場合 (たとえば、大なり記号が欠落している場合)、エラーも返されます。この関数は fgetss() と同じ機能を持ちます。 fgetss はファイルからファイルを読み取り、html タグと php タグを削除します。

<?php

echo strip_tags("Hello <b>world!</b>");

実行結果

Hello world!

3. 関数 htmlspecialchars、特殊文字を HTML 形式に変換

htmlspecialchars() 関数は事前定義された文字を変換します HTML エンティティに変換します。
定義済みの文字は次のとおりです。
& (アンパサンド) は &
になります。 " (二重引用符) は "
' (一重引用符) になります。 '
c451ce336bb71d86ea75fe77b4872355 (より大きい) は>

##

<?php
echo htmlspecialchars("This is some <b>bold</b> text.&");

実行結果

This is some <b>bold</b> text.&

4. 関数 htmlentities は、すべての文字を HTML 文字列に変換します


htmlspecialchars が 4 つの HTML タグしか処理できないことをまだ後悔しているかもしれません。すべての文字。

<?php

echo htmlentities("<? W3S?h????>");

実行結果

<? W3S?h????>

5.addslashes、関数は事前定義された文字の前にバックスラッシュが追加された文字列を返します。

事前定義された文字は次のとおりです。

単一引用符 (')
二重引用符 (")
バックスラッシュ (\)
NULL

<?php

echo addslashes(&#39;Shanghai is the "biggest" city in China.&#39;);

実行結果

Shanghai is the \"biggest\" city in China.

6. Stripslashes は、addslashes を復元することで参照される文字列です。

<?php

echo stripslashes("Who\&#39;s Bill Gates?");

実行結果

Who&#39;s Bill Gates?

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください!

関連する推奨事項:

php Cocket の使用方法

PHP ソース コード php -beast 暗号化

QQ メールボックスを使用した電子メール送信の PHP 実装

以上がphp Webリクエストのセキュリティ処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。