Moo*_*oon 8 php security function manual
我正在从教程中学习这个PHP代码来上传文件
<form method="post" enctype="multipart/form-data">
<input name="userfile" type="file" id="userfile">
</form>
<?php
if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) {
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if (!get_magic_quotes_gpc()) {
$fileName = addslashes($fileName);
}
include 'library/config.php';
include 'library/opendb.php';
$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed');
include 'library/closedb.php';
Run Code Online (Sandbox Code Playgroud)
现在我通过使用PHP文档了解每个功能和一切
除了
get_magic_quotes_gpc()
Run Code Online (Sandbox Code Playgroud)
Dmi*_*ryK 19
get_magic_quotes_gpc()是一个检查配置(php.ini)的函数,如果magic_quotes_gpc关闭则返回0(否则返回1).
当magic_quotes打开时,所有'(单引号),"(双引号),\(反斜杠)和NUL都会自动使用反斜杠进行转义.这是为了防止各种注入安全问题.
在您的情况下,代码检查设置是否已关闭并添加斜杠以正确转义内容以防止SQL注入.
就像你说的那样 - 这个功能已被弃用,将来肯定会被删除(事实上他们已经在PHP6中删除了它).
另一种方法是根据需要在运行时转义数据