既然你在谈论消毒,我假设这是一个公共网站,陌生人将上传文件。存储用户提交的PDF文件是一个 的 很坏 强> 理念。首先,您如何确定您收到的文件甚至是PDF?用户可以100%将CURL恶意文件存入您的数据库并让用户在不知情的情况下下载病毒。 PDF格式本身(如果我没记错的话)实际上可能会在某些Windows操作系统中执行病毒,就像WMV和WMA文件一样。
如果您绝对需要PDF,那么最好的选择就是 的 创建 强> 您自己的PDF文件,其中包含用户提交的清理数据。您可以在线找到有关如何执行此操作的教程。我个人不建议首先使用PDF,因为你可以使用HTML& CSS构建简历并完美打印出来。
的 Q 强> 如果你有一个文件上传字段,该字段是否容易受到sql注入?
的 一个 强> 是(类似于。表单上的字段不是易受SQL注入攻击的;该漏洞实际上是在处理请求中提交的值的代码中。)
的 Q 强> 还是我不必要地担心?
的 一个 强> 不应该。您应该始终了解可能发生的不良事件,并以防止漏洞暴露(和利用)的方式编写代码。
的 Q 强> 如果我通过base64_encode()提供上传的文件内容,这是否相当于清理?
的 一个 强> 它几乎就在那里,只要你的base64_encode保证返回的值只包含[A-Za-z0-9 + ./ =]。最佳做法是使用绑定参数
的 Q 强> 或者我应该编码它然后另外通过mysql_real_escape_string传递编码的字符串?
的 一个 强> 除非使用带有绑定参数的预准备语句,否则最佳实践要求所有值(包括base64_encoded值)通过mysql_real_escape_string运行,如果它们包含在要提交给数据库的SQL文本中。