>  기사  >  백엔드 개발  >  PHP 웹 요청 보안 처리

PHP 웹 요청 보안 처리

不言
不言원래의
2018-07-05 15:27:411786검색

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 두 메소드의 결과는 동일합니다. 처리 중, urlencode는 "+"로 처리되고, rawurlencode는 "%20"

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 엔터티로 변환합니다.
미리 정의된 문자는 다음과 같습니다.
&(앰퍼샌드)는 &
"(큰따옴표)는 "
'(작은따옴표)는 '
ca1b3336911610a4f690c96fb863478f(보다 큼)이 됩니다.

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

실행 결과

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

4. 함수 htmlentities, 모든 문자를 HTML 문자열로 변환


아마도 htmlspecialchars는 4개의 html 태그만 처리할 수 있다는 사실을 아직도 후회하고 계실 것입니다. 그렇다면 이제 후회하지 마세요. 즉, htmlentities는 모든 문자를 변환합니다.

<?php

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

running results

<? W3S?h????>

5.addlashes, 이 함수는 사전 정의된 문자 앞에 백슬래시가 추가된 문자열을 반환합니다.

사전 정의된 문자는 다음과 같습니다.

작은따옴표(')
큰따옴표(")
백슬래시()
NULL

<?php

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

실행 결과

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

6. Stripslashes는 복원 addlashes에서 참조하는 문자열입니다.

<?php

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

Run Result

Who&#39;s Bill Gates?

위 내용은 모두의 학습에 도움이 되기를 바랍니다.

관련 권장 사항:

PHP 코켓 사용 방법

PHP 소스 코드 php-beast 암호화

QQ 메일함을 사용하여 이메일을 보내는 PHP 구현

위 내용은 PHP 웹 요청 보안 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.