Laravel 7清理表单数据

问题描述

我是Laravel 7的新手,想知道是否有一种现成的,优雅的解决方案来清理HTML表单输入?还是我可以下载推荐的受信任的第三方软件包?这用于我将存储在数据库中的数据。感谢您的帮助。

解决方法

一种建议的开箱即用的数据清理方法是将PHP附带的filter_var函数与不同的sanitize filters结合使用。顺便说一句,这也是验证输入的一种很酷的方法,看看types of filters可以了解更多信息。

在Laravel项目中工作时,我喜欢使用voku/portable-ascii library,因为它已经是框架依赖性。清理输入,删除不可打印的字符以及通常将任何输入转换为ASCII(包括音译和其他功能)的功能非常丰富。它并不总是完美的,但通常足够好,可以完成工作。

它始终取决于您要消毒的内容,方式和原因。在许多情况下,如果您遵循最佳实践,则根本不需要清理输入内容。当使用Eloquent或Query Builder时,您的数据会自动转义并在检索时(例如,将其输出时)。通过{{ $data }},它们也将被正确地转义。

在某些情况下,您应该更加谨慎,尤其是当您自己处理原始用户输入并可能通过命令行参数,文件名等将其传递给系统时。在这些情况下,最好是尽可能地限制和必要时允许。有时候,不错的旧preg_replace('/[^0-9A-Z_-]/i','',$subject)才是正确的选择。如果您想尽可能地宽容,请尝试上面的建议。