我目前正在创建一个有趣的网站,而且我是php,javascript和mysql的初学者。
我必须更新数据库中的数据。这是我的数据库的结构:
的recordId(自动编号) recordvalue(VARCHAR)
在我的html中我有一个包含recordID和recordValue
的表当我点击编辑按钮时。
将recordValue传递给文本输入 并且recordId被传递给隐藏的输入。
安全吗?
还是有更好的安全方式。
我已经阅读了一些关于sql注入和会话的基本文章。
是否可以更改隐藏的输入值。在运行时。我的意思是点击编辑按钮后。那个数据会发送到我的PHP代码?
我有这个PHP代码。$stmt = $conn->prepare("CALL sp_updatedata (?,?)");
$stmt->bindParam(1, $userid, PDO::PARAM_INT, 10);
$stmt->bindParam(2, $u_name, PDO::PARAM_STR, 30);
$stmt->execute();
答案 0 :(得分:1)
首先,了解以下内容至关重要:假设用户可以看到您发送到浏览器的所有。使用隐藏的表单字段是没有方式来保护机密安全。如果您不希望用户知道它,请不要将其发送到浏览器
好的,关于你的问题:浏览器中发生了什么(例如:将记录值移动到文本框并将记录ID记录到隐藏字段)与SQL注入无关。当攻击者使您的数据库执行不需要的查询时,就会发生SQL注入。发生这种情况是因为程序员选择将来自用户的值直接插入查询中。你在Stack上看到了很多,特别是在注册和登录查询上:
JXDatePicker picker = new JXDatePicker();
//picker.setDate(Calendar.getInstance().getTime());
picker.setFormats(new SimpleDateFormat("dd.MM.yyyy"));
picker.setDate(Calendar.getInstance().getTime());
picker.setBounds(50,130,100,25);
f.add(picker);
为了防止SQL注入,请使用预准备语句
SELECT * from users_table WHERE username = $_POST[username]
回顾