SQLインジェクションまたはURLを防止または無効にするための最良の方法を知りたいです。
たとえば、www.mysite.com / profile.php?id=18です。この種のサイト(MySQL_Errorが有効になっている場合)はインジェクションに対して脆弱です。どうすればそれを防ぐことができますか?mysql_real_escape_stringは非推奨になるため、まもなく役に立たなくなります。
htmlspecialchars()を試しましたが、URLでは機能しません。
SQLインジェクションまたはURLを防止または無効にするための最良の方法を知りたいです。
たとえば、www.mysite.com / profile.php?id=18です。この種のサイト(MySQL_Errorが有効になっている場合)はインジェクションに対して脆弱です。どうすればそれを防ぐことができますか?mysql_real_escape_stringは非推奨になるため、まもなく役に立たなくなります。
htmlspecialchars()を試しましたが、URLでは機能しません。
SQL インジェクションを防ぐために必要な手順はたくさんあります。
この件に関するこの記事をチェックしてください
http://www.codeproject.com/Articles/9378/SQL-Injection-Attacks-and-Some-Tips-on-How-to-Prev
これがあなたを正しい方向に導くのに役立つことを願っています
<?php
//===========================================================================\\
// \\
// Copyright (c) 2000-2015 Willem Vyent. All rights reserved. \\
//---------------------------------------------------------------------------\\
// http://www.tnhteam.com/ http://www.awesomehosting.org/ \\
//---------------------------------------------------------------------------\\
// \\
// \\
// \\
// \\
// Coded by Willem Vyent \\
// This program is distributed in the hope that it will be useful, but \\
// WITHOUT ANY WARRANTY \\
// \\
// \\
//===========================================================================\\
if(!defined('FILE_PROTECT')) { // You should define this in your pages BEFORE you include this file
die('This file cannot be accessed directly!<br /><br />Dit bestand kan niet rechtstreeks worden benaderd<br /><br />Click <a href=\'http://' . $_SERVER['HTTP_HOST'] . '>here</a> to visit our homepage'); // Do not change it's a text for users who visit this document. we included a link as well...
}
// Custom error handler - collecting information
function awesome_error_handler($number, $message, $file, $line, $vars)
{
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$email = "<p>An error known as number <strong>$number</strong> has been found on line <strong>$line</strong>, this error has been found in file <strong>$file</strong>. The requested URL with errors is $actual_link<br /><p> $message </p>";
$email .= "<pre>" . print_r($vars, 1) . "</pre>";
$headers = 'Content-type: text/html; charset=iso-8859-1' . "";
// Email the error to the webmaster...
error_log($email, 1, 'your-name@example.com', $headers); // Yor email here...
// Make sure that you decide how to respond to errors (on the user's side)
// Either echo an error message, or kill the entire project. It's up to you...
// The code below ensures that we only "die" if the error was more than
// just a NOTICE.
if ( ($number !== E_NOTICE) && ($number < 1024) ) {
die('Sorry, this page is broken, but our coders will fix it ASAP.'); // your message to the website user (visitor)
}
}
// Tell this script to use this error handler when errors found..
set_error_handler('awesome_error_handler');
?>
<?php
if(isset($_REQUEST["id"])){
if(!is_int($_REQUEST["id"])){
//redirect this person back to homepage
} else {
$id_raw = trim(htmlentities($_REQUEST["id"]));
$id_secure = mysql_real_escape_string($id_raw);
$sql = "SELECT * FROM databasetable WHERE id='".$id_secure."'";
}
}
?>