在我的应用程序中,用户可以提交链接。我想在我的MySQL数据库中插入链接的文本内容,以便我可以进行进一步的索引和搜索。
我考虑在PHP中使用file_get_contents方法,然后将数据插入MySQL。这里有哪些安全隐患?或者这个任务是否错误,并且有一些特殊模块可以完成这些类型的工作?
(我已经在使用PDO,但我之前可能没有明确表示我只想获得主要文本内容,不包括可能包含在html中的css和javascript)
答案 0 :(得分:1)
正如BenM所说,不要重新发明谷歌。 但是,如果你决定了,这里有一些观点:
file_get_contents()是获取URL内容的正确方法,您可以使用stream_context_create()
创建其他上下文选项,以避免索引404或500链接并遵循永久重定向
当您获得代码时,您必须解析它,取出不必要的部分并获取文本内容。 Here是关于该特定主题的非常翔实的问题
您必须考虑传入内容的字符集。即使你尊重声明的声明字符集,你也会很容易陷入困境。 Here是关于该主题的另一个信息链接
最后,只有当您使用内置转义函数和预备语句关注数据转义的重新发布时,您的数据才会以安全的方式进入数据库(请参阅约PDO
和Mysqli
,不要使用旧的mysql接口)。如果你错过了这些中的任何一个,那么你应该为混乱负责。
希望这会对你有所帮助。
答案 1 :(得分:0)
您首先需要警惕MySQL注入黑客攻击。要避免这些,请使用PHP的PDO扩展和预准备语句。看一下PHP的文档:http://php.net/manual/en/pdo.prepared-statements.php
答案 2 :(得分:0)
无需使用 file_get_contents 方法,因为您不需要先将文本存储在文件中,然后再将其重新检索。
最合适的是直接插入数据库。 (MySQL的)。
PDO 在这方面最安全。 。 。
在保存到数据库之前先拆分文本以便更好地建立索引