Php 防跨站分析

php中文网
发布: 2016-06-23 14:30:56
原创
1299人浏览过

今天在改bug时,发现同事写的代码里存在跨站漏洞,于是加了个php防跨站函数htmlentities()。

因为以前也没有认真分析过此函数,翻了下文档,想了解透测点。

Htmlentities() 转化所有适当字符为html实体

  函数说明:

string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )

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

 

string :为输入需转换的字符

flags :和htmlspecialchars()一样,第二个参数允许你定义单双引号将做什么。它需要是默认常数ENT_COMPAT的三个参数之一,可以结合第四个ENT_IGNORE

ENT_COMPAT

Will convert double-quotes and leave single-quotes alone.

ENT_QUOTES

Will convert both double and single quotes.

ENT_NOQUOTES

Will leave both double and single quotes unconverted.

ENT_IGNORE

Silently discard invalid code unit sequences instead of returning an empty string. Added in PHP 5.3.0. This is provided for backwards compatibility; avoid using it as it may have security implications.

charset :与htmlspecialchars()一样 ,它带有一个可选的第三个参数做为字符集转换,目前,默认ISO-8859-1字符集

支持的字符集列表

字符集

别名

描述

ISO-8859-1

ISO8859-1

西欧,Latin-1

ISO-8859-15

ISO8859-15

西欧,Latin-9。增加欧元符号,法语和芬兰语字母在 Latin-1(ISO-8859-1) 中缺失。

UTF-8

 

ASCII 兼容的多字节 8 位 Unicode。

cp866

ibm866, 866

DOS 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。

cp1251

Windows-1251, win-1251, 1251

Windows 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。

cp1252

Windows-1252, 1252

Windows 特有的西欧编码。

KOI8-R

koi8-ru, koi8r

俄语。本字符集在 4.3.2 版本中得到支持。

BIG5

950

繁体中文,主要用于中国台湾省。

GB2312

936

简体中文,中国国家标准字符集。

BIG5-HKSCS

 

繁体中文,附带香港扩展的 Big5 字符集。

Shift_JIS

SJIS, 932

日语

EUC-JP

EUCJP

日语

 

double_encode :当double_encode为关闭状态,php默认将一切都转换为html实体

 

返回值

返回已经编码的字符串

 html_entity_decode()与htmlentities()为反向函数,一个解码,一个编码。

 但是如果出现没有这些字符集呢?那么这个函数就不起作用了。那起不悲剧,于是还是自己再写个函数过滤下吧。

function inxss($url)
{
$arr = array('http','script','iframe','com','www');//过江的字符,呵,自由发挥吧。最好用正则处理,因为我的是在iframe的跨站,其实只要针对着不让它传入http://。。。这些url进来就行了
foreach($arr as $value)
{
if( strstr($url,$value))
{
exit;
}
else
{
return $url;
}
}
}
$url = htmlentities(inxss($_GET["url"]));双重过虑。呵

这样的话应该可以多了点安全

 

 

 

 

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号