如果在页面上ctype_digit(base64_decode(trim($_POST['id'])
或者我应该首先在if内部创建变量if并为其赋予trim($_POST['id']
),那么首先执行这样的smth是否安全是因为它们可能放了一些疯狂的东西在它可能会溢出base64_decode
或ctype_digit
,或者我过分强调?
答案 0 :(得分:0)
我真的不明白你的问题。 在将3个函数应用于变量之前,只需将$ _POST ['id']赋值给变量就不会有任何区别。 但是,您应首先验证$ _POST ['id']是否已实际设置(或者您将收到通知)并且您应始终验证传入数据($ _POST ['id']中的值)实际上是否有效(
之前,如果它包含恶意值,则不能诱发攻击。答案 1 :(得分:0)
如果您害怕大量数据输入,只需在解码之前添加一个strlen,这样您就不必担心溢出它。在使用数据库附近之前,您应该始终检查数据。
答案 2 :(得分:0)
我会说你做得那么小心。但是,在大多数情况下,正确的编码方式是创建一个变量,如$ id,并为其赋值变量的值。这是因为大量开发人员必须使用模板,作为PHP程序员,您的任务是获取post / get输入和数据库行,并使它们可用于模板,以便于访问变量和数组。
当您期望数字ID时,您的示例会使您的脚本安全。如果您期望一个字符串,通常用于SQL语句,那么您将需要采取进一步的步骤。即使是最干净的字符串也可用于SQL注入。这就是应该使用准备好的陈述的地方。