Sup*_*vah 5 php mysql security sql-injection
我试过通过在firefox之外向服务器进行自定义查询来尝试实现SQL注入.
在php中,所有变量都以这样的字符串传递给查询.
请注意,在此阶段,$ _POST尚未触及.
mysql_query('INSERT INTO users (password, username) VALUES(' . sha1($_POST['password']) . ',' . $_POST['username'] . '));
Run Code Online (Sandbox Code Playgroud)
这是一种安全的改变方式吗?
您绝对应该使用mysql_real_escape_string转义用户名。
当然,最好的解决方案是使用准备好的语句。这样就在 mysql API 级别上实现了查询语法和数据的分离。
而且,正如其他人指出的那样,价值观绝对应该用引号引起来。尤其是文字的。