【发布时间】:2016-10-09 20:31:35
【问题描述】:
您认为清理以下数组的最佳方法是什么?我正在考虑在每个 $row 之前添加 htmlentites 或者使用下面的方法。
<?php
$result = $conn->query("SELECT formula.id, tokens, direction, graph, module FROM formula INNER JOIN syntics ON formula.moduleid = syntics.id");
while ($row = $result->fetch_array())
filter_var_array($row, FILTER_SANITIZE_SPECIAL_CHARS); // OK?
echo "<td>".
$row['tokens'] ."<td>".
$row['direction'] ."<td>".
$row['graph'] ."<td>".
$row['module '] ."<td>".
"<a href='upong.php?soya=" . $row['id'] . "'>Specific type</a>" . "</tr>";
?>
【问题讨论】:
-
重要的是您的数据是什么。前 4 个字段是保存为文本还是 html?我可以假设 id 是一个整数吗?
-
前4个字段保存为html。你是对的,id 是整数。
-
你从数据库输出,你认为你需要“清理”什么?
-
请您提供更多信息,说明您为什么要进行消毒?你想防止什么?
-
我认为如果不阻止字符、DB 和实际输出之间的界限,就会出现 XSS 风险。如果黑客可能会以某种方式将输出从 DB 更改为自己的字符串/脚本。当用户单击“特定类型”时,它会被定向到另一个页面。然后在查询之前对接收 ID 进行清理。
标签: php