javascript - 阻止聊天消息从 MySQL 服务器发送后在浏览器中执行脚本?

标签 javascript php html jquery

我正在制作一个聊天应用程序,人们可以在其中来回发送消息。我刚刚意识到,当提交消息时,它会在浏览器中执行脚本。如果我提交消息<script>alert("hello");</script>我的浏览器将执行该脚本,并且消息 div 将没有消息内容。当我查看服务器时,“内容”列中包含脚本。当我加载用户和我之间的所有消息时,它将再次运行脚本...。我遇到的问题是,如何在不运行脚本的情况下仅以文本形式显示消息?我正在 php 服务器内形成大型 HTML block ,然后 echo每一位到AJAX将它们附加到对话 div 中的请求。作为我正在做的事情的简化版本,这基本上是文本 block I echo从数据库中获取值后输出。

$chat_message='
<div class="messaging-block">
    <div id="date">'.$date.'</div>
    <div id="username">'.$fname.' '.$lname.'</div>
    <div id="content">'.$content.'</div>
</div>';
echo $chat_message;

AJAX

$.ajax({
type: 'POST',
url: 'get-chat-messages.php',
dataType: 'html', //have tried 'text' as well
data: 'convid=' + conversation,
success: function(response) {
  $("#conversation-div").append(response);
                      }        });

最佳答案

其他程序有 strip 标签功能,尝试谷歌搜索或类似的东西,我很确定有功能 strip 标签或类似的东西适合您正在寻找的东西。

谷歌搜索 XSS 预防可能也是一个好主意。

我看到你提到了 echo。 PHP有 strip 标签100%

关于javascript - 阻止聊天消息从 MySQL 服务器发送后在浏览器中执行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61513733/

相关文章:

php - 如何使用不同的数据库条目达到特定值(整数)?

jquery - html 链接呈现在页面上,但表现得好像它不存在

php - 在php中跳过n行csv文件

javascript - 提交表格并停留在同一页面上?

javascript - Angular 2 - 跨多个浏览器窗口的单一服务提供商

javascript - 为包含 id 数组的对象编写 Redux Actions 和Reducers 到其他对象

PHP:使用 POST 数据模拟 <form> 标记并重定向用户

html - Bootstrap 红色列表文本不起作用

javascript - 如何使用 SVG 制作圆形选择框?

javascript - 单击时禁用值下拉列表