用户提交的链接 - 存储PHP,MySQL

时间:2013-03-10 13:57:03

标签: php mysql security

在我的应用程序中,用户可以提交链接。我想在我的MySQL数据库中插入链接的文本内容,以便我可以进行进一步的索引和搜索。

我考虑在PHP中使用file_get_contents方法,然后将数据插入MySQL。这里有哪些安全隐患?或者这个任务是否错误,并且有一些特殊模块可以完成这些类型的工作?

(我已经在使用PDO,但我之前可能没有明确表示我只想获得主要文本内容,不包括可能包含在html中的css和javascript)

3 个答案:

答案 0 :(得分:1)

正如BenM所说,不要重新发明谷歌。 但是,如果你决定了,这里有一些观点:

  1. file_get_contents()是获取URL内容的正确方法,您可以使用stream_context_create()创建其他上下文选项,以避免索引404或500链接并遵循永久重定向

  2. 当您获得代码时,您必须解析它,取出不必要的部分并获取文本内容。 Here是关于该特定主题的非常翔实的问题

  3. 您必须考虑传入内容的字符集。即使你尊重声明的声明字符集,你也会很容易陷入困境。 Here是关于该主题的另一个信息链接

  4. 最后,只有当您使用内置转义函数和预备语句关注数据转义的重新发布时,您的数据才会以安全的方式进入数据库(请参阅约PDOMysqli,不要使用旧的mysql接口)。如果你错过了这些中的任何一个,那么你应该为混乱负责。

  5. 希望这会对你有所帮助。

答案 1 :(得分:0)

您首先需要警惕MySQL注入黑客攻击。要避免这些,请使用PHP的PDO扩展和预准备语句。看一下PHP的文档:http://php.net/manual/en/pdo.prepared-statements.php

答案 2 :(得分:0)

无需使用 file_get_contents 方法,因为您不需要先将文本存储在文件中,然后再将其重新检索。

最合适的是直接插入数据库。 (MySQL的)。
PDO 在这方面最安全。 。 。

在保存到数据库之前先拆分文本以便更好地建立索引