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