\r\n";?> getEmployeeNamesDB.php $dropdown = ""; -6ren">
gpt4 book ai didi

php - 填充下拉框时,php 还是 javascript 更安全

转载 作者:行者123 更新时间:2023-12-02 20:12:40 24 4
gpt4 key购买 nike

从安全 Angular 来看,填充 HTML 选择框时哪个更好?

选项 A:PHP

<?php echo "<select name=\"empName\" id=\"empName\" class=\"text\" style=\"width:10em;\">\r\n";?>
<?php include 'PHPscripts/getEmployeeNamesDB.php'?>
<?php echo "</select>\r\n";?>

getEmployeeNamesDB.php

$dropdown = "";     
$tbl_name="employee"; // Table name
$result = mysql_query("SELECT CONCAT_WS(' ', firstname, lastname) AS 'wholename', empid FROM $tbl_name ORDER BY lastname") or die("cannot select result DB.php");
while($row = mysql_fetch_assoc($result)) {
$empid = $row["empid"];
$name = $row["wholename"];
$dropdown .= "<option value=\"$empid\">$name</option>\r\n";
}
echo $dropdown;

选项 B:Javascript

除了使用 AJAX 调用来填充 JavaScript 变量之外,信息相同。然后用javascript来做select语句?

安全是我最关心的问题,但我也想知道您是否能提出我应该考虑的任何其他问题。

最佳答案

当您尝试填充或生成输出时,不会出现安全问题,除非涉及先前的用户输入。如果用户选择这样做,他可以伪造 POST 请求并轻松包含您未包含在选择框中的选项。

因此,当用户提交数据时,您应该关注安全性。您应该在收到数据后始终验证它,看看它是否是有效的选项。例如:

<?php
// Generating the menu
$choices = array('Eggs','Toast','Coffee');
echo "<select name='food'>";

foreach ($choices as $choice) {
echo "<option>$choice</option>";
}

echo "</select>";

// Then, later, validate when user submits form
if (! in_array($_POST['food'], $choices)) {
echo "You must select a valid choice.";
}
?>

正如其他人所指出的,您应该使用 PHP 而不是 JS,因为它可能更快,并且也适用于那些关闭了 JS 的人。

关于php - 填充下拉框时,php 还是 javascript 更安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6771439/

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