我已经阅读了关于 db 注入的信息,直到我眼睛红了,论坛搜索,未命名的搜索搜索......所以一个彻头彻尾的问题。我正在使用 jquery/ajax。
var characterReg = /^([0-9a-zA-NP-Z]{27,34})$/;
仅用于基本格式验证。传递给php。在数据库查询中使用结果是否安全?我不是在寻找实际的比特币地址验证,只是基本格式。
<?php
include('myConnect.php');
$expire = time() + 60 * 60 * 24 * 30;
$path = '/';
if (isset($address)) {
// Query db if address exsists.
$data = mysql_query("SELECT * FROM viewers WHERE address = '$address'");
$info = mysql_fetch_array($data);
if ($info) {
// Build cookie data from db row array.
$bitAdrr = $info['address'];
$id = $info['id'];
$earn = $info['earnings'];
$track = $info['tracking'];
setcookie('user', $bitAdrr . ',' . $id . ',' . $earn . ',' . $track, $expire);
} else {
echo 'empty';
}
}
?>
我的连接.php
<?php
$addr = $_GET['address'];
// Verify address is correct format.
if (strlen($addr) > 26 && strlen($addr) < 35 && !preg_match('/[^A-NP-Za-z0-9]/', $addr)) {
$server = 'mysql.myHost.com';
$user = 'myUserName';
$pass = 'myPassWord';
$db = 'myDataBase';
// Connect to Database
$connection = mysql_connect($server, $user, $pass) or die("Could not connect to server. \n" . mysql_error());
mysql_select_db($db) or die("Could not connect to database. \n" . mysql_error());
$address = $addr;
} else {
exit;
}
?>
可能的注射?mysql_real_escape_string(htmlspecialchars 似乎真的很慢。我宁愿不要。