laravel str_random url安全吗?

时间:2018-03-23 18:30:08

标签: string laravel url random

我需要生成一个随机字符串以用作URL的一部分。

我正在使用laravel 5.6,目前正在执行此操作:

$url = '/controller/' . str_slug(str_random(8)) . '/review';

我想知道我是否真的需要str_slug()的开销。我似乎无法找到任何表明str_random()是否生成URL安全字符串的内容。

2 个答案:

答案 0 :(得分:3)

str_random()只会包含字母数字字符(A-Z,a-z,0-9)。

算法采用一串随机bty,base64对字节进行编码,然后删除三个允许的特殊字符(/+=)中的任何一个。

无需拨打str_slug()

Here is a link to the function implementation,如果您想亲自查看代码。

答案 1 :(得分:0)

str_random将提供大写小写大小写字符。由于URL通常不区分大小写,因此URL的变化将远远少于str_random实际生成的变化,但是我想这对您来说不是一个大问题。

str_slug将小写随机string,但这将是它所做的唯一更改,因此,如果要获得相同的效果,可以只使用strtolower(str_random(8))