php web请求安全处理

不言
发布: 2018-07-05 15:27:41
原创
1954人浏览过

1、urlencode和rawurlencode的区别

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

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

立即学习PHP免费学习笔记(深入)”;

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标记,那么现在你不要遗憾了,htmlentities是转化全部字符。

<?php

echo htmlentities("<? W3S?h????>");
登录后复制

运行结果

<? W3S?h????>
登录后复制

5、addslashes,函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL

<?php

echo addslashes('Shanghai is the "biggest" city in China.');
登录后复制

运行结果

Shanghai is the \"biggest\" city in China.
登录后复制

6、stripslashes是还原addslashes引用的字符串。

<?php

echo stripslashes("Who\'s Bill Gates?");
登录后复制

运行结果

Who's Bill Gates?
登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

php cocket的使用方法

PHP源码php-beast加密

PHP 利用QQ邮箱发送邮件的实现

以上就是php web请求安全处理的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号