PHP安全问题?
回答
这是广泛的,也许你应该尝试缩小一点。
什么样的安全性? 对于密码? 你想限制一些东西吗? SQL注入? HTML注入? 跨域安全性?
有很多事情要知道,你应该尽快开始。
其中之一,如果您接受文章(可能使用所见即所得并且正在接受HTML),请使用某些内容来解析内容并删除可能使您容易受XSS等影响的内容。
一个例子是HTML Purifier。
接受稍后将显示的用户生成文本时需要考虑两个方面。
首先,您需要保护数据库免受注入式攻击。这里有一个简单的PHP函数:mysql_real_escape_string()通常足以在传递该字符串时将数据库从注入状态保存为字段值。
从那里开始,你必须小心你的显示器,因为允许上传HTML代码的用户可以在其他用户上显示代码。如果您正在制作纯文本文章,则可以简单地使用htmlspecialchars()生成的文本。 (您也可能想将换行符转换为
标签)。如果您使用的是格式解决方案(如本网站使用的Markdown引擎),那么这些解决方案通常会根据引擎的功能提供HTML清理,但是一定要阅读文档并确保。
噢,请确保您还验证用于提交文章的GET/POST变量。毫无疑问,所执行的验证将需要根据您的网站的逻辑处理进行量身定制。
请注意:我假设一个MySQL数据库,其他数据库类型有相同的功能。 – 2010-03-26 01:18:43
参数化查询应该用来代替'mysql_real_escape_string()' - http://en.wikipedia.org/wiki/SQL_injection#Parameterized_statements – 2010-03-26 01:29:57
mysql_real_escape_string()不保护任何东西。它仅仅是一个简单的转义函数,并且仅在与引号结合时才起作用。所以,该规则必须像“用mysql_real_escape_string()**和**将它们用引号括起来一样”。剩下的就好了。 – 2010-03-26 07:01:37
那么,正如其他答案中提到的,有许多不同的方面可能会危害您的PHP脚本。
这里只是一对夫妇:
有许多的方式来处理每一个。这里有一些事情看:
这可能是明智的使用Drupal的一样或CakePHP的框架开始。这样你就可以从他们实施安全的方式中学习,并利用它已经完成的事实。学习曲线足够陡峭,无需推出自己的认证机制等。
当您的项目已准备好供公共使用时,通常是设置error_reporting(0);
它不会提供更多的安全性,但它使得坏人(通常)很难找到可能的安全问题与您的网站。
糟糕的推荐。不要混淆错误报告**级别**,该级别**应始终尽可能高,并带有错误报告**目标**,应将其从显示切换到生产服务器上的日志。 – 2010-03-26 07:04:02
好的,我的想法是,普通用户不会看到错误信息。 如何处理错误信息我的每个人都有自己的决定,但正如你所说,最好存储它们。 – Mikk 2010-03-26 11:19:24
也许两个小技巧可以帮助你获得更多的安全网站
- 在数据库中创建两个用户,只读帐户,以仅选择和计数,并写帐户时,您需要做的更新,插入或删除。
当你插入到数据库或删除,消毒投入,用mysql准备陈述或断言,通过邮寄到达或得到这样的值:
if(!empty($_GET["integer_like_id_value"]){ $integer_id_value = (int)$_GET["integer_like_id_value"]; }else{ // that stuff seems not to be legit, die application, log error ? whatever die(); }
- 1. PHP安全问题
- 2. AJAX PHP的安全问题
- 3. PHP SESSION安全问题
- 4. PHP/MySQL安全问题
- 5. PHP URL安全问题
- 6. 安全问题,php/mysql
- 7. PHP和AJAX安全问题
- 8. PHP定义安全问题?
- 9. PHP会话安全问题
- 10. Ajax安全问题:jQuery ajax()+ PHP scandir()=安全问题?
- 11. 安全问题
- 12. 安全问题
- 13. 安全问题?
- 14. 动态网站安全问题(PHP + MySQL)
- 15. CVE-2011-4885安全问题和PHP 5.2
- 16. PHP和cron的:安全问题
- 17. 数据库/ PHP安全问题
- 18. PHP函数 - 安全性问题?
- 19. Codeigniter/PHP会话安全问题
- 20. 有一个安全问题,使用PHP
- 21. 安全问题extjs
- 22. JBoss安全问题
- 23. Maven安全问题
- 24. BDC安全问题
- 25. AJAX安全问题
- 26. WS安全问题
- 27. WCF安全问题
- 28. Acegi安全问题
- 29. Java安全问题
- 30. WCF安全问题
可以说,提交数据如人名,内容等。 – pHp 2010-03-26 01:17:38