注入到非SQL站点(仅限PHP)
我有一个没有SQL的CMS网站。所有内容都写入文件中 但是,有一个函数(注入到非SQL站点(仅限PHP),php,code-injection,Php,Code Injection,我有一个没有SQL的CMS网站。所有内容都写入文件中 但是,有一个函数(login($login,$pass))使用简单的if-else语句检查登录表单中的POST数据 if login-data-from-file == POST['login'] and password-data-from-file == POST['pass'] then "Log user in" 我想知道是否有办法注入这样的代码。你认为呢?没有,因为你可能只是在比较字符串 然而,对SQ
login($login,$pass)
)使用简单的if-else语句检查登录表单中的POST数据
if
login-data-from-file == POST['login']
and
password-data-from-file == POST['pass']
then
"Log user in"
我想知道是否有办法注入这样的代码。你认为呢?没有,因为你可能只是在比较字符串
然而,对SQL注入的免疫并不会自动使任何应用程序变得安全。始终存在和需要担心的问题(在许多其他问题中,只有两种最常见的攻击向量)。如果您使用了正确的if-else语句,我认为没有办法注入此代码。可以发送
NULL
值(%00),但不应更改任何内容。如果不使用eval或任何其他黑魔法,则不能直接注入PHP代码。尽管将用户和密码以明文形式存储在文件中并不十分安全。如果你仍然想这样做,你应该确保
%00听起来不是很像空字符串吗?是的,但是为什么我不能像这样在登录/密码表单中输入:5或1==1。然后PHP使用if-else语句,我在,对吗?不,因为5或1==1是PHP的字符串。您可以键入ex.Login=5或1==1,并且根本没有密码,if…else语句将为false,因为字符串“5或1==1”!=文件中的字符串和密码也不正确。当然,包含此类数据的文件是安全的,不能从外部读取。我认为将所有数据存储在文件中是个坏主意……这是真的,但代码不是我的。这是我第一次发现这样的案例,我很惊讶地决定在这里写下它。