我将尝试适当地回答这个问题,但我从来没有真正正确地解决过这个问题,所以我只是想澄清一下,以正确地围绕它。
将变量传递到函数中时,是与使用引号和键入数据相同,还是将所有内容作为变量传递更安全。这是我的意思的示例:
$foo = "bar"; // Variable
function($foo); // some function
// Is this the same as
function("bar");
// Likewise if I pass
$foo = $_POST['bar'];
function($foo);
是否可以通过添加)
或反斜杠的组合来避免这种情况?始终使用变量而不是直接将其放入会更安全吗?
通过在用户名字段上使用以下内容:
$var = trim($_POST['username']);
$var = preg_replace('/[^0-9a-zA-Z]/',"",$var);
从技术上讲,我应该可以放心地信任数据库和敏感区域(当然,如果可能的话,使用预处理语句)中的变量,但是不能将其转义并与PHP正确交互吗?我总是喜欢尽可能安全地编写我的应用程序,即使它们极有可能不会被公众看到,但是使用它永远不会太安全。
我知道,使用上面的示例,该字段仅应包含字母数字序列,且不能包含空格或任何特殊字符,因此我只想确定自己是否正确执行此操作并将其传递为{{1 }}在我所有的功能中都认为它是安全的,并且不能与功能本身交互。