我正在制作一个聊天应用程序,人们可以在其中来回发送消息。我刚刚意识到,当提交消息时,它会在浏览器中执行脚本。如果我提交消息<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/