使用 explode() 和 count() 进行代码注入的风险?
Risk of code injection with explode() and count()?
我正在使用一个网站,该网站当前将产品 ID 列表存储在 URL 中的 字符串 中。
看起来像这样:localhost/product-list?compare=7011,7012,7013
此列表使用 explode()
和 count()
拆分,以显示页面上的产品数量。
我是否应该担心人们在 URL 中插入自己的值,是否存在使用 explode()
和 count()
进行代码注入的风险?
好吧,这实际上取决于它们在您的代码中的使用方式。例如,如果您在数据库中查询这些 ID。如果您使用参数化查询来实现这一点,应该没问题。但是,为了确保奇怪的输入不会在您的代码中漫游,您可以使用简单的 preg_match
来验证数字 (ID) 和逗号。
<?php
$compare = '7011,7012,7013';// or from $_GET
var_dump(preg_match('/^(\d+,?)+$/',$compare));
我正在使用一个网站,该网站当前将产品 ID 列表存储在 URL 中的 字符串 中。
看起来像这样:localhost/product-list?compare=7011,7012,7013
此列表使用 explode()
和 count()
拆分,以显示页面上的产品数量。
我是否应该担心人们在 URL 中插入自己的值,是否存在使用 explode()
和 count()
进行代码注入的风险?
好吧,这实际上取决于它们在您的代码中的使用方式。例如,如果您在数据库中查询这些 ID。如果您使用参数化查询来实现这一点,应该没问题。但是,为了确保奇怪的输入不会在您的代码中漫游,您可以使用简单的 preg_match
来验证数字 (ID) 和逗号。
<?php
$compare = '7011,7012,7013';// or from $_GET
var_dump(preg_match('/^(\d+,?)+$/',$compare));