整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

防止XSS攻击的方法-使用白名单过滤html等标签

javaweb项目,从安全的角度思考,否则哪天你的项目就被简单的黑掉了。最简单的就是从网站输入了alert("i am coming"),返回的确实一个弹出框,这就尴尬了。

事实上,现在运行的很多项目,安全的意识还没有得到重视。不要等到被勒索病毒这样的严重事件爆发出来才亡羊补牢,这就晚了。所以,一个成熟的项目安全是一定要的。

XSS攻击是相对简单的一个了,防止XSS攻击是一定要的。下面说一下防止的具体方法:jsoup工具类

jsoup使用很简单,功能却很强大。它提供了很多简单易懂,方便应用的方法

上代码好说话

项目中引入:

jsoup 使用一个 Whitelist 类用来对 HTML 文档进行过滤,该类提供几个常用方法:

常用方法如下:

none():只允许包含文本信息

basic():允许的标签包括:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul, 以及合适的属性

simpleText():只允许 b, em, i, strong, u 这些标签

basicWithImages():在 basic() 的基础上增加了图片

relaxed():这个过滤器允许的标签最多,包括:a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul

如果这五个过滤器都无法满足你的要求呢,例如你允许用户插入 flash 动画,没关系,Whitelist 提供扩展功能,例如 whitelist.addTags("embed","object","param","span","div"); 也可调用 addAttributes 为某些元素增加属性。

用法:Jsoup.clean(content, Whitelist.relaxed());//content:要处理的内容

实例:

加入到你的项目中,测试后你会发现,它很好用,也很实用。这里只是简单使用,入个门。具体高级应用项目中用到了再深入研究,增加效率,帮助你更快的完成工作

hp修改html标签中的内容php与html如何配合使用php改变htmlphp过滤htmlphp输出html标签

PHP删除HTMl标签的三种解决方法_流年-CSDN博客_php去除htm...

2017年9月19日 在PHP中可以使用strip_tags函数去除HTML标签,看下面示例: 复制代码代码如下: <?php $str = ‘www<p>dreamdu</p>.com'; echo(htmlspecialchars($str).”<br>”);...

CSDN技术社区

百度快照

php去除HTML标签实例_php实例_脚本之家

2013年11月6日 在php中要去除字符串中的HTML标签方法有很多种,最常用的就是使用strip_tags函数一并去了,只保留字符了,还在就是有选择性的去除了这里要用正则表达式了,下面写二...

用户在 HTML 表单中填写并提交数据时,可以使用 PHP 来接收并处理这些数据。要实现这一点,需要创建一个 PHP 脚本来处理提交的数据,然后将 HTML 表单的 "action" 属性设置为该脚本的文件路径。表单提交的数据需要进行验证和过滤,以确保数据的完整性和安全性。可以使用条件语句、正则表达式、过滤器函数等方法来验证和过滤数据,并使用 htmlspecialchars() 函数转义 HTML 标记,以防止 XSS 攻击。

以下是一个简单的示例:

HTML 表单代码:

<form action="submit.php" method="post">

<label for="name">Name:</label>

<input type="text" id="name" name="name">

<label for="email">Email:</label>

<input type="email" id="email" name="email">

<button type="submit">Submit</button>

</form>

PHP 代码(submit.php):

<?php

// 获取表单提交的数据

$name = $_POST['name'];

$email = $_POST['email'];

// 在这里进行处理,例如将数据存储到数据库中

// ...

// 返回一个响应,告诉用户数据已经被成功提交

echo "Thank you for submitting the form, $name!";

?>

在上面的示例中,表单的 "action" 属性设置为 "submit.php",这意味着提交表单时,数据将被发送到 submit.php 文件中的 PHP 代码中进行处理。PHP 代码使用 $_POST 数组来获取表单提交的数据,然后进行处理,例如将数据存储到数据库中。最后,PHP 代码返回一个响应,告诉用户数据已经被成功提交。在处理表单数据时,一定要对用户输入进行验证和过滤,以防止安全漏洞。

需要对表单提交的数据进行验证和过滤,以确保数据的完整性和安全性。以下是一些常见的方法:

1、验证表单字段:在 PHP 代码中使用条件语句和正则表达式等方法来验证表单字段的有效性,例如验证电子邮件地址的格式是否正确。

$email = $_POST['email'];

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

// 如果邮件地址格式不正确,则显示错误消息

echo "Invalid email address";

}

2、过滤输入数据:使用 PHP 中的过滤器函数来过滤表单输入数据,以防止 XSS 攻击和 SQL 注入等安全漏洞。

$name = $_POST['name'];

$name = filter_var($name, FILTER_SANITIZE_STRING); // 过滤特殊字符和标签

3、防止跨站脚本攻击(XSS):在 PHP 代码中使用 htmlspecialchars() 函数来转义 HTML 标记,防止恶意脚本注入到页面中。

$name = $_POST['name'];

$name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8'); // 转义 HTML 标记

4、防止 SQL 注入攻击:在 PHP 代码中使用参数化查询或准备语句来执行数据库操作,以防止恶意 SQL 语句注入到数据库中。

$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");

$stmt->bindParam(':name', $name);

$stmt->bindParam(':email', $email);

$stmt->execute();

通过这些方法,可以确保表单提交的数据是安全和有效的,并且能够正常地处理和存储到数据库中。