2013-03-10 35 views
-2

我想要在php页面中保护我的mysql连接免受黑客攻击。我想保护我的MySQL连接和PHP页面

我有数据库用户的密码不同于根密码。我已经使用了这个查询:

function make_safe2($safe) 
{ 
$safe = strip_tags(mysqli_real_escape_string(trim($_POST['bname'] . $_POST['why'] . $_POST['email'] . $_POST['submit']))); 
return $safe; 
} 

有没有更多的方法可以确保针对SQL注入和其他黑客方法的安全性。我没有任何登录页面。我有一个bname表单,为什么和电子邮件字段以及提交按钮。提交按钮是否需要转义字符串? :P我想是个傻问题。

将意识到从SQL注入和其他方法预防其他方式的完整语法。 :)

+2

[伟大的逃避现实(或:你需要知道怎么处理文本中的文本)](http://kunststube.net/escapism/) – deceze 2013-03-10 15:37:07

+0

请。我总是重复使用搜索功能! – 2013-03-10 16:05:22

回答

2

您应该使用带有绑定参数的预准备语句。

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)"); 
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent); 

$code = 'DEU'; 
$language = 'Bavarian'; 
$official = "F"; 
$percent = 11.2; 

/* execute prepared statement */ 
mysqli_stmt_execute($stmt); 

See the documentation

This answer是一个完整的指南,了解如何防止对SQL注入。

+0

让我看看它。 :) 感谢你的回答。 – 2013-03-10 15:46:15

+0

如果我使用以下语法: $ stmt = $ dbConnection-> prepare('My SQL Query goes here right?'); $ stmt-> bind_param('s',$ name); 这是什么? – 2013-03-10 15:53:57

+0

's'表示一个字符串,'$ name'表示一个变量。 – Kermit 2013-03-10 17:02:12