在php中处理表单更安全的方法?

时间:2011-11-08 15:20:18

标签: php security overflow

如果在页面上ctype_digit(base64_decode(trim($_POST['id'])或者我应该首先在if内部创建变量if并为其赋予trim($_POST['id']),那么首先执行这样的smth是否安全是因为它们可能放了一些疯狂的东西在它可能会溢出base64_decodectype_digit,或者我过分强调?

3 个答案:

答案 0 :(得分:0)

我真的不明白你的问题。 在将3个函数应用于变量之前,只需将$ _POST ['id']赋值给变量就不会有任何区别。 但是,您应首先验证$ _POST ['id']是否已实际设置(或者您将收到通知)并且您应始终验证传入数据($ _POST ['id']中的值)实际上是否有效(

之前,如果它包含恶意值,则不能诱发攻击。

答案 1 :(得分:0)

如果您害怕大量数据输入,只需在解码之前添加一个strlen,这样您就不必担心溢出它。在使用数据库附近之前,您应该始终检查数据。

答案 2 :(得分:0)

我会说你做得那么小心。但是,在大多数情况下,正确的编码方式是创建一个变量,如$ id,并为其赋值变量的值。这是因为大量开发人员必须使用模板,作为PHP程序员,您的任务是获取post / get输入和数据库行,并使它们可用于模板,以便于访问变量和数组。

当您期望数字ID时,您的示例会使您的脚本安全。如果您期望一个字符串,通常用于SQL语句,那么您将需要采取进一步的步骤。即使是最干净的字符串也可用于SQL注入。这就是应该使用准备好的陈述的地方。

http://www.php.net/manual/en/mysqli.prepare.php

http://www.php.net/manual/en/class.mysqli-stmt.php