私は目が赤くなるまで、dbインジェクション、フォーラム検索、名前のない検索検索について読んだことがあります....だから、率直な質問です。私はjquery/ajaxを使用しています。
var characterReg = /^([0-9a-zA-NP-Z]{27,34})$/;
基本的な形式の検証のみ。それがphpに渡されます。結果を DB クエリで使用しても安全ですか? 私は実際のビットコインアドレスの検証を探しているのではなく、基本的な形式だけを探しています.
<?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';
}
}
?>
myConnect.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 は本当に遅いようです。