微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-删除插入到mysql中的post html,js,css

当我在文本输入中发布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();
?>

页面上的结果:

enter image description here

解决方法:

这是一个XSS问题,而不是数据库或CSS问题.

快速的答案是,您必须在HTML上下文中显示的任何用户数据上调用htmlspecialchars.这将消除用户故意或无意引入的任何HTML.

长答案是人们希望能够采用某种格式,因此考虑使用Markdown之类的东西,这样您就可以键入* bold *和_italic_之类的东西,而不必编写实际的HTML.有很多这样的PHP实现.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐