Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要帮助更正我的代码中的XSS漏洞吗_Javascript_Security_Xss - Fatal编程技术网

Javascript 需要帮助更正我的代码中的XSS漏洞吗

Javascript 需要帮助更正我的代码中的XSS漏洞吗,javascript,security,xss,Javascript,Security,Xss,我注意到我的图像弹出代码受到XSS攻击。。我理解这个问题,但由于PHP不是我的专业领域,我不知道如何纠正它。。我在这里做了相当多的搜索,但仍然不完全清楚如何修复我的代码 下面是有问题的代码: <?php echo '<a href="javascript:window.close()">' . zen_image($_GET['products_image_large_additional'], $products_values->fields['products_n

我注意到我的图像弹出代码受到XSS攻击。。我理解这个问题,但由于PHP不是我的专业领域,我不知道如何纠正它。。我在这里做了相当多的搜索,但仍然不完全清楚如何修复我的代码

下面是有问题的代码:

<?php
  echo '<a href="javascript:window.close()">' . zen_image($_GET['products_image_large_additional'], $products_values->fields['products_name'] . ' ' . TEXT_CLOSE_WINDOW) . '</a>';
?>


如何更正此代码以更正其中的XSS漏洞???

您显然是在服务器端获取产品数据

$products\u values->fields['products\u name']
),那么为什么不以相同的方式获取图像,而不是通过
$\u get
?这应该可以解决您的问题。

我不确定zen_image希望/做什么,但您可以在将GET变量传递给函数之前对其进行转义

<?php
    echo '<a href="javascript:window.close()">' . zen_image(strip_tags($_GET['products_image_large_additional']), $products_values->fields['products_name'] . ' ' . TEXT_CLOSE_WINDOW) . '</a>';
?>


我使用该函数删除了所有HTML标记。

zen_image做什么?它是一个返回图像数据(图像源、alt标记、宽度、高度等)的函数。它到底是如何做到的?你能展示一些代码,特别是第一个参数是如何处理的吗?让我再试一次。。zen_图像是“HTML图像包装函数”。(图像源、alt标记、宽度、高度等)好的,那么,对吗?即使我知道如何做你的建议(我不知道,因为PHP编程不是我拥有的技能集:),我也知道我发布的代码是用于附加产品图像的,因为产品数据只存储主产品图像,我不相信我能以这种方式获得额外的图像..zen_图像是“HTML图像包装函数”。(图像来源、alt标记、宽度、高度等)下面是一个问题——因为我想不去理解你建议的修复方法:)。。为什么剥离标签与htmlspecialchars??我只是想了解一个前进的基础。。您的代码似乎工作得很好。@CrystalJones这取决于HTML是如何被破坏的。htmlspecialchars也可以工作。strip_标记删除标记,htmlspecialchars对其进行编码,以便浏览器不会将其呈现为标记。如果使用htmlspecialchars,请确保添加**ENT\U QUOTES**作为第二个参数。