function clear_xss2($val, $extratags=array()) {
// version 2 of clear xss2 which allows to keep all valid html tags but removing dangerous html tags
$doc = new DOMDocument();
// load the HTML string we want to strip
libxml_use_internal_errors(true);
$doc->loadHTML($val);
// remove comments
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//comment()') as $comment) {
$comment->parentNode->removeChild($comment);
}
$forbiddenTags = array('script','applet', 'iframe', 'frameset', 'frame','object','embed');
if(!empty($extratags))
$forbiddenTags = array_merge($forbiddenTags, $extratags);
foreach($forbiddenTags as $tag) {
while (($r = $doc->getElementsByTagName($tag)) && $r->length) {
$r->item(0)->parentNode->removeChild($r->item(0));
}
}
// we need to remove js on events on any tags
$nodes = $doc->getElementsByTagName('*');
for($c = 0; $c<$nodes->length; $c++){
$node = $nodes->item($c);
foreach($node->attributes as $k => $v){
if( substr($k, 0, 2)=='on' ){
$node->removeAttribute($k);
}
}
}
libxml_clear_errors();
return $doc->saveHTML();
}
// version 2 of clear xss2 which allows to keep all valid html tags but removing dangerous html tags
$doc = new DOMDocument();
// load the HTML string we want to strip
libxml_use_internal_errors(true);
$doc->loadHTML($val);
// remove comments
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//comment()') as $comment) {
$comment->parentNode->removeChild($comment);
}
$forbiddenTags = array('script','applet', 'iframe', 'frameset', 'frame','object','embed');
if(!empty($extratags))
$forbiddenTags = array_merge($forbiddenTags, $extratags);
foreach($forbiddenTags as $tag) {
while (($r = $doc->getElementsByTagName($tag)) && $r->length) {
$r->item(0)->parentNode->removeChild($r->item(0));
}
}
// we need to remove js on events on any tags
$nodes = $doc->getElementsByTagName('*');
for($c = 0; $c<$nodes->length; $c++){
$node = $nodes->item($c);
foreach($node->attributes as $k => $v){
if( substr($k, 0, 2)=='on' ){
$node->removeAttribute($k);
}
}
}
libxml_clear_errors();
return $doc->saveHTML();
}
相关推荐
这个包包含了一些关键文件,如`admin.php`、`cook.html`、`clear.php`、`c.php`以及`xss.txt`,它们各自承载着不同的功能,对于理解XSS攻击和防御机制具有一定的学习价值。 首先,让我们深入了解一下这些文件: 1....
◾修正在那里提交的值是通过PHP的“ヶ辆”传递函数只有在元素的“ disable_xss_filters ”属性未设置为TRUE , potentialy导致一些奇怪的事情,当有一些WYSIWYG编辑器一起使用的bug ; ◾修正一个错误的地方设置“ ...
◾修正在那里提交的值是通过PHP的“ヶ辆”传递函数只有在元素的“ disable_xss_filters ”属性未设置为TRUE , potentialy导致一些奇怪的事情,当有一些WYSIWYG编辑器一起使用的bug ; ◾修正一个错误的地方设置“ ...
2. **查看购物车**:用户可以查看购物车中的所有商品,包括商品名称、图片、价格和数量。这需要从会话中检索商品数据,并将其显示在页面上。 ```php session_start(); if (isset($_SESSION['cart'])) { foreach ($...
在PHP中,清理或过滤字符串中的HTML标签是常见的需求,主要目的是为了防止XSS(跨站脚本攻击)或其他安全问题。本文将介绍两种方法来实现这个功能:自定义正则表达式函数和PHP内置的`strip_tags`函数。 ### 自定义...
2. **book.php**:可能是书籍或收藏相关功能的实现,可能涉及到用户保存或查看收藏的网页等功能。 3. **copy.php**:可能与内容复制或克隆有关,比如页面内容的备份或同步功能。 4. **index.php**:通常是网站的主页...
Bo-Blog ikk-clear 是一个基于PHP开发的个人博客系统,其名称可能来源于"Bo"代表博客(Blog)以及"Ikk-clear"可能意味着简洁或清晰的设计。作为一个网页模版,它为用户提供了一种快速搭建个性化博客的方式,尤其适合...
2. **X-XSS-Protection**:开启浏览器内置的XSS过滤器,帮助检测并阻止某些类型的XSS攻击。 3. **X-Content-Type-Options**:防止MIME类型混淆攻击,强制浏览器按照服务器声明的MIME类型解析内容。 4. **X-Frame-...
2. **index.php**: - 这是用户登录的HTML页面。在这个文件中,不应直接获取`$_SESSION["VCODE"]`,因为这可能会导致获取到新生成的验证码,而非用户看到的验证码。用户输入的验证码将被发送到`loginCheck.php`进行...
2. 安装与配置: - 安装:下载SMARTY库,解压到项目目录下,然后通过require_once引入SMARTY的启动文件。 - 配置:创建SMARTY实例,设置模板目录、编译目录、缓存目录等参数。 3. 基本用法: - 初始化:创建...
php artisan clear-compiled ``` **3. 配置与使用** 安装并注册后,你需要在 `app/config/packages/spatie/laravel-twigbridge/config.php` 文件中配置 TwigBridge,比如设置模板目录、缓存位置等。一旦配置完成,...
2. PHP中的session使用 - PHP的session机制允许开发者创建用户会话,通过会话,可以在多个页面请求中维持用户的状态信息。 - 在用户登录成功后,通过session_start()函数启动会话,并将用户信息存储在$_SESSION...
你可以通过`php artisan view:clear`命令来清除视图缓存。 ### 五、Blade模板的最佳实践 1. **保持模板简洁**:尽量避免在模板中写过多的业务逻辑,将复杂的计算和逻辑处理放在控制器或服务层。 2. **合理组织视图...
3. **shtmlspecialchars()**:这个函数用于将字符串中的HTML和PHP特殊字符转换为HTML实体,防止XSS攻击。 4. **authcode()**:该函数用于字符串的加密和解密,通常用于保护敏感数据,如用户的登录凭据或隐私信息。 ...
2. **过滤非法字符**:在服务器接收到用户输入时,过滤非法字符是一项关键的安全措施,可以防止SQL注入、跨站脚本(XSS)等攻击。通过设置规则或使用特定的过滤工具,可以有效地识别并阻止包含潜在危险的字符或字符...
本文将详细介绍如何使用H5本地存储功能以及图片...需要注意的是,在处理用户数据时,务必考虑安全问题,如防止跨站脚本攻击(XSS)、确保数据的合法性等。同时,对于敏感的个人信息,应遵循隐私政策,确保数据的安全性。
2. **模板分离**:Smarty的核心功能就是实现模板和PHP逻辑的分离,这样可以提高代码的可读性和可维护性,减少错误,并且便于团队协作。 3. **变量赋值**:在Smarty中,开发者可以在PHP后端设置变量,然后在模板中...
存储在localStorage中的信息没有加密,可能会遭受XSS攻击或CSRF攻击,因此不建议存储敏感信息。对于需要处理敏感信息的应用,可以考虑使用更安全的存储方案如Web SQL数据库或IndexedDB,或者使用服务端存储方案,...