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

不言
リリース: 2023-04-02 14:56:02
オリジナル
1732 人が閲覧しました

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 エンティティに変換します。
定義済みの文字は次のとおりです。
& (アンパサンド) は &
になります。 " (二重引用符) は "
' (一重引用符) になります。 '
< (より小さい) は < になります。 ;
> (より大きい) は>

##

<?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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!