gpt4 book ai didi

javascript - 我的 PHP 代码容易受到 XSS 攻击吗?

转载 作者:行者123 更新时间:2023-11-29 21:36:35 24 4
gpt4 key购买 nike

本网站的用户使用一种工具来构建具有自定义设置的 JavaScript 对象。

每次他们更改输入元素中的内容时,我都想使用他们自己的设置执行此 javascript 代码并显示预览。

所以我放了一个 iframe 来发送带有 url 中设置的请求。

<iframe src="settings.php?javascript=...></iframe>

每次他们更改内容时,iframe 都会重新加载。

我的 PHP 代码?

<?php

$javascript = "";

/**/

if(empty($_GET["javascript"]))
{
exit;
}

/**/

$javascript = "

<script>
".$_GET["javascript"]."
</script>

";

/**/

$html = '

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
'.$javascript.'
</head>
<body></body>
</html>

';

/**/

echo($html);

这段代码是否容易受到 XSS 攻击?如果是,我该如何预防?

最佳答案

是的,您的代码容易受到 XSS 攻击。事实上,让用户运行任意 javascript 几乎就是 XSS 漏洞的定义。它是有意而非意外的事实并不能降低它的脆弱性。

如果您只需要一个设置对象,那么当您可以只使用 JSON 时,没有理由允许任意 javascript。 JSON.parse 会将 JSON 字符串解析为 JS 对象(而 JSON.stringify 会将对象序列化为字符串)。使用 JSON 方法将进行额外的验证,以确保该对象是一个有效的 JSON 对象/字符串,而不是直接将其放入脚本标记(或使用 eval),从而防止(至少在这一个地方)XSS。

关于javascript - 我的 PHP 代码容易受到 XSS 攻击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34708197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com