【问题标题】:Warning: Undefined array key [duplicate]警告:未定义的数组键 [重复]
【发布时间】:2021-07-01 03:05:09
【问题描述】:

请帮忙,错误是这样的:

警告:未定义的数组键“Nama”在 D:\xampp\htdocs\phpdasar\pertemuan7\latihan2.php 在第 11 行

警告:未定义的数组键“NIM”在 D:\xampp\htdocs\phpdasar\pertemuan7\latihan2.php 在第 12 行

警告:未定义的数组键“电子邮件”在 D:\xampp\htdocs\phpdasar\pertemuan7\latihan2.php 在第 13 行

警告:未定义的数组键“Jurusan”在 D:\xampp\htdocs\phpdasar\pertemuan7\latihan2.php 在第 1 行

<ul>
    <li><img src="img/<?= $_GET ["gambar"]; ?>"></li>
    <li><?= $_GET["Nama"];?></li>
</ul>

【问题讨论】:

    标签: php php-7


    【解决方案1】:

    首先我要提一下,你在那里做的事情很危险,因为它可能导致reflected XSS attacks

    顺便说一句,您必须检查$_GET数组的索引是否已定义。

    <ul>
        <li><?= isset($_GET["Nama"]) ? $_GET["Nama"] : "";?></li>
    </ul>
    

    根据 cmets 的要求,这里有一些方法可以防止此示例中的 XSS:

    htmlentities($_GET["Nama"]);
    // or
    filter_var($_GET["Nama"], FILTER_SANITIZE_SPECIAL_CHARS);
    

    两者都有效地做同样的事情并导致浏览器只输出用户在 URL 中输入或提供的内容而不解释任何内容(检查docs 以过滤和清理输入)

    【讨论】:

    • jumper85,谢谢你的帮助,但是什么是 XSS?对不起,我对编程很陌生,所以我不懂很多东西。
    • @DewiSari - 这一切都在他们发布的“反射 XSS 攻击”链接中进行了解释。
    • 它是跨站点脚本的缩写,有人可能会在您的站点 URL 中设置恶意代码(通常是一些 javascript),并且它会被反映,因为您在没有任何过滤/清理的情况下打印它。 Here 是一篇解释其中一些内容的文章。
    • 建议: 展示如何在使用 XSS 时保护它,因为这是你提出的一个重要且好的观点 :-)
    • @MagnusEriksson 你是对的,添加了一些例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2022-10-13
    • 2022-09-23
    • 1970-01-01
    • 2014-09-12
    • 2022-11-20
    相关资源
    最近更新 更多