由于缺少 = 字符串的引号,无法验证 html
Unable to validate html due to missing quotation for = string
我在尝试验证文档时收到此错误 "Error: = in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value."
。
这是我的代码:
print("<a href=" . $_SERVER["PHP_SELF"] . '?id=' . $student->hentId() . ">" . $student->hentNavn() . "</a><br/>\n");
HTML 输出如下所示:
<a href=/StudentDatabase/StudentRegister.php?id=1>Petter Andersen</a><br/>
如何正确添加报价?
通过使用 \
转义来添加引号
您希望 id=1 出现在 url 中吗?我猜这是它认为缺少引号的属性
print("<a href=\" . $_SERVER["PHP_SELF"] . '?id=' . $student->hentId() . \">" . $student->hentNavn() . "</a><br/>\n");
直接在link中使用$_SERVER["PHP_SELF"]
是不安全的。根据您的代码,该网站可能容易受到 XSS 攻击,不需要的 JavaScript 可能会在访问 page/url/%22%3E%3Cscript%3Ealert('xss')%3C
/script%3E%3Cfoo%22
时结束注入。 student id
或 student name
也是如此,如果这些记录未经过清理,html
可能会损坏或容易受到 XSS 攻击。
建议使用函数 rawurlencode
、urlencode
、htmlspecialchars
来清理生成的 link。
<?php
$url = rawurlencode($_SERVER["PHP_SELF"]) . "?id=" . urlencode($student->hentId());
?>
<a href="<?php echo htmlspecialchars($url); ?>">
<?php echo htmlspecialchars($student->hentNavn()); ?>
</a>
我在尝试验证文档时收到此错误 "Error: = in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value."
。
这是我的代码:
print("<a href=" . $_SERVER["PHP_SELF"] . '?id=' . $student->hentId() . ">" . $student->hentNavn() . "</a><br/>\n");
HTML 输出如下所示:
<a href=/StudentDatabase/StudentRegister.php?id=1>Petter Andersen</a><br/>
如何正确添加报价?
通过使用 \
转义来添加引号您希望 id=1 出现在 url 中吗?我猜这是它认为缺少引号的属性
print("<a href=\" . $_SERVER["PHP_SELF"] . '?id=' . $student->hentId() . \">" . $student->hentNavn() . "</a><br/>\n");
直接在link中使用$_SERVER["PHP_SELF"]
是不安全的。根据您的代码,该网站可能容易受到 XSS 攻击,不需要的 JavaScript 可能会在访问 page/url/%22%3E%3Cscript%3Ealert('xss')%3C
/script%3E%3Cfoo%22
时结束注入。 student id
或 student name
也是如此,如果这些记录未经过清理,html
可能会损坏或容易受到 XSS 攻击。
建议使用函数 rawurlencode
、urlencode
、htmlspecialchars
来清理生成的 link。
<?php
$url = rawurlencode($_SERVER["PHP_SELF"]) . "?id=" . urlencode($student->hentId());
?>
<a href="<?php echo htmlspecialchars($url); ?>">
<?php echo htmlspecialchars($student->hentNavn()); ?>
</a>