我对PHP编程有些新,知道如果你没有对你的PHP代码进行过滤,恶意用户可以通过黑客手段攻击你的网站。我想知道的是,他们是否需要一个数据输入框(如文件提交或用户名/密码输入字段)。
类似"include (header.php)"这样的命令是否也需要某种安全性,或者它们天生就是安全的?
与其他编程语言一样,PHP代码的安全性取决于程序员编写的安全性。
同样像其他语言一样,个人(甚至是常见的)安全风险太多且细节繁多,无法在StackOverflow答案中进行详细说明。
找一本覆盖安全PHP编码的书籍。
不要相信用户。
include "a/literal/file.php";
非常安全
include $someFile;
这意味着你需要考虑如何设置$someFile。如果您使用任何来自用户的数据来设置$someFile的值,最好对其进行净化。
PHP本身是安全的,但默认情况下需要程序员具备相关技能来保证安全性。与.NET不同,.NET默认情况下更倾向于通过安全性来帮助开发者。
包含文件是安全的,只需注意路径是否被动态生成即可。
以下代码是无害的(取决于myfile.php中的代码)。
include("mypath/myfile.php");
关于数据输入框,我们需要注意SQL注入攻击、溢出、不良字符等问题。首先可以查看filter_var()
、mysql_real_escape_string()
、pg_escape_string()
等函数。
htmlentities
。 - DisgruntledGoat我同意这里所有人的观点 - PHP 本身并不比其他语言更安全或更危险。
但你应该深入了解你的 php.ini
文件。你可能需要学习所有指令。这是很多人在早期犯错误的地方。
你的问题比较宽泛和笼统,但是针对你提出的一个具体点:
include (header.php);
相对而言是比较安全的,但是
include ($header);
根据$header
的赋值方式以及是否经过消毒,这可能是一个危险的安全漏洞。