在寻找如何保护网站的可能方法时,我发现了很多信息。通过这些信息需要几个月的时间。什么是短规则(要记住)保持(PHP)代码安全?
所以,问题是:什么是简短的规则(要记住)保持(PHP)代码的安全?
使用的网站,黑客会危害:
使用输入表单中输入的东西时,- ;
- 使用输入表单上传内容时;
- 在地址栏中输入内容时。
据我所知,没有其他的方法(只使用网站)黑客可能会造成伤害。
1)使用输入表单与用户输入相关的规则。
1.1。在mysql中记录。 PDO准备的报表如: INSERT INTO TableName (Column1, Column2, Column3) VALUES (???)
。因此,如果任何?
将包含删除数据库的代码,则?
的内容将被记录在mysql中并且不会被执行。如果代码如INSERT INTO TableName (Column1, Column2, Column3) VALUES ($variable, $variable, $variable)
,则可以执行此类代码。
1.2。从mysql显示为html记录并显示用户的输入。 对于字符串必须使用回波htmlspecialchars($variable)
对于数组必须使用这样https://stackoverflow.com/a/2003212/2465936
function filter(&$array) {
$array = htmlspecialchars($array, ENT_QUOTES, 'UTF-8');
}
array_walk_recursive($array, "filter");
echo '<pre>';
print_r($array);
echo '</pre>';
1.3。 JSON(Javascript)输出。例如,我有回音json_encode($bad_content);
如何逃避它?用echo json_encode(JSONObject.escape ($bad_content))
?请指教。
2)使用输入表单与上传相关的规则。目前在我的代码中,您看到了$data = new Spreadsheet_Excel_Reader(($_FILES['file']['tmp_name']), false, false)
。目前,我不知道该怎么做。如果我想在MySQL中记录Excel或CSV文件的内容,那么没关系,我使用PDO准备好的语句。但是有必要清理文件名?我试图上传一个名为header('Location: http://www.google.com');
的CSV文件。所有数据按预期导入。请,一个建议是否有必要消毒/逃脱的东西。如果是,那么如何?
3)规则,与在客户端浏览器的地址栏中输入内容有关。 如何避免与URL操作相关的问题?
例如,键入 http://www.mywebsite.com/bookreports.asp?reportID=21'; drop table myTablename--
见Not Found The requested URL /bookreports.php was not found on this server.
并没有什么事情发生
怎样做才能避免可能出现的问题,如果黑客在地址栏类型意想不到的事情?我需要检查每个文件的URL吗? 从哪里危害到这种情况?好的,用户可以输入密码保护页的网址。但在密码保护页面中,我检查浏览器会话ID并与服务器会话ID进行比较。
这里有很多问题:C – MackieeE
您的问题是广泛的!编程确实需要您的一些学习和阅读。学习捷径并不是最好的开始。 – StBlade
我只想写一些简短的规则作为参考。假设记住并遵循主要规则是有用的。 – user2465936