PHP包括数字
如果我像这样构建我的页面,我需要检查news\u id在news.php中是否也是数字吗?或者这安全吗 index.php: news.php:PHP包括数字,php,sql-injection,Php,Sql Injection,如果我像这样构建我的页面,我需要检查news\u id在news.php中是否也是数字吗?或者这安全吗 index.php: news.php: 简短回答:是的,你应该 有人可能(也将)绕过index.php请求news.php。简短回答:是的,你应该这样做 有人可能(也将)请求news.php,绕过index.php。在将数据发送到MySQL之前,您确实应该对数据进行转义和清理。不保证有人不会试图通过post数据发送恶意内容 $news_id = (int)$_GET[news_id]; $
简短回答:是的,你应该
有人可能(也将)绕过index.php请求news.php。简短回答:是的,你应该这样做
有人可能(也将)请求news.php,绕过index.php。在将数据发送到MySQL之前,您确实应该对数据进行转义和清理。不保证有人不会试图通过post数据发送恶意内容
$news_id = (int)$_GET[news_id];
$query = mysql_query("SELECT * FROM news WHERE news_id = " .
mysql_real_escape_string($news_id));
$row = mysql_fetch_assoc($query);
if (!mysql_num_rows($query)) exit('The news you're trying to read do not exist.');
在将数据发送到MySQL之前,您确实应该对其进行转义和清理。不保证有人不会试图通过post数据发送恶意内容
$news_id = (int)$_GET[news_id];
$query = mysql_query("SELECT * FROM news WHERE news_id = " .
mysql_real_escape_string($news_id));
$row = mysql_fetch_assoc($query);
if (!mysql_num_rows($query)) exit('The news you're trying to read do not exist.');
其他答案绝对正确,您不应允许任何用户直接输入数据库或任何其他敏感区域 您应该验证/清理来自$\u GET、$\u POST等的所有输入。。。您可以使用PHP的内置函数,也可以使用框架中内置的函数,如Cake PHP或Symphony,这两种函数都使处理用户数据变得更加容易 jonstjohn有一个很好的观点,就是您可以通过这种方式打开sql注入,而其他形式的攻击都是基于向您的应用程序中输入恶意代码
值得一读Jeff Atwood的文章,了解一下这些问题以及其他问题的背景。其他答案绝对正确,您不应该允许任何用户直接输入数据库或任何其他敏感区域 您应该验证/清理来自$\u GET、$\u POST等的所有输入。。。您可以使用PHP的内置函数,也可以使用框架中内置的函数,如Cake PHP或Symphony,这两种函数都使处理用户数据变得更加容易 jonstjohn有一个很好的观点,就是您可以通过这种方式打开sql注入,而其他形式的攻击都是基于向您的应用程序中输入恶意代码
值得一读杰夫·阿特伍德(Jeff Atwood)的文章,了解一些关于这些问题以及其他问题的背景知识。将其转换为整数是什么意思?我该怎么做?$news\u id=intval($u GET['news\u id');把它转换成整数是什么意思?我该怎么做?$news\u id=intval($u GET['news\u id')-1.你的代码是多余的,看起来你根本不知道它到底在做什么。你的代码是多余的,看起来你根本不知道它到底在做什么。
$news_id = (int)$_GET[news_id];
$query = mysql_query("SELECT * FROM news WHERE news_id = " .
mysql_real_escape_string($news_id));
$row = mysql_fetch_assoc($query);
if (!mysql_num_rows($query)) exit('The news you're trying to read do not exist.');