当我在文本输入中发布html,js,css标签,规则,语法时.它显示在页面结果上!我使用$conn- real_escape_string和mysqli准备的语句,但对我来说仍然不安全.我的代码是:?phprequire config/config.php;mysqli_set_char...
当我在文本输入中发布html,js,css标签,规则,语法时.它显示在页面结果上!
我使用$conn-> real_escape_string和mysqli准备的语句,但对我来说仍然不安全.
我的代码是:
<?php
require 'config/config.php';
mysqli_set_charset($conn,"utf8");
$qmsg = $_POST["qsmsg"];
$qmsgs = mysqli_real_escape_string($conn, $qmsg);
$ansr = "Answer";
$userName = "John";
$userId="4";
$userType="user";
$imgsp="images/avatar.jpg";
$stmt = $conn->prepare("INSERT INTO qa (qus, ansrq, uname, uid, utype, uimage) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssiss", $qmsgs, $ansr, $userName, $userId, $userType, $imgsp);
...
$stmt->close();
$conn->close();
?>
我页面上的结果:
解决方法:
这是一个XSS问题,而不是数据库或CSS问题.
快速的答案是,您必须在HTML上下文中显示的任何用户数据上调用htmlspecialchars.这将消除用户故意或无意引入的任何HTML.
长答案是人们希望能够采用某种格式,因此考虑使用Markdown之类的东西,这样您就可以键入* bold *和_italic_之类的东西,而不必编写实际的HTML.有很多这样的PHP实现.
沃梦达教程
本文标题为:php-删除插入到mysql中的post html,js,css
基础教程推荐
猜你喜欢
- 浅析canvas元素的html尺寸和css尺寸对元素视觉的影响 2024-04-26
- JS前端广告拦截实现原理解析 2024-04-22
- this[] 指的是什么内容 讨论 2023-11-30
- 基于Vue制作组织架构树组件 2024-04-08
- vue离线环境如何安装脚手架vue-cli 2025-01-19
- js禁止页面刷新与后退的方法 2024-01-08
- 关于文字内容过长,导致文本内容超出html 标签宽度的解决方法之自动换行 2023-10-28
- Ajax实现动态加载数据 2023-02-01
- 浅谈Vue2和Vue3的数据响应 2023-10-08
- CSS3的几个标签速记(推荐) 2024-04-07
