0

我在页面上有一个文本框,如下所示:

<form action="verify.php" method="post">
<input type="text" width="30" name="securityCode"><br />
<input type="submit" value="Go" />
<form>

在 verify.php 我有这个:

<?php
$enteredCode=$_POST['securityCode'];
//Other stuff
?>

我想知道的是,这是否会带来恶意?例如,如果他们在文本框中输入了一些 PHP,它会起作用吗?

编辑

我不认为这很重要,但显然它很重要。如果他们输入了我设置$_SESSION['passedSecurityCheck']为的正确代码true,否则我将其设置为 false。很抱歉没有具体说明。:)

4

3 回答 3

3

就你所展示的而言,你没有用那个价值做任何事情。
因此,在那段代码中没有什么可以被滥用的。

于 2012-08-08T13:10:37.113 回答
1

在我的脑海中,可能的问题:

  1. 检查安全代码:

    • 您是否使用数据库来执行此操作 - 如果是,SQL 注入
    • 使用服务器上的文件来检查代码,有人可以嗅探其他人的文件
    • 您是否使用外部程序 - 有很多困难,包括(但不限于)shell、参数、文件名等
  2. 安全码是什么意思?代码只是意味着访问一个简单的文本文件,包括添加其他用户、删除用户等。这里的列表是无穷无尽的

  3. 如果另一个人(比如在图书馆里)忽略了用户的肩膀,那么该代码是纯文本还是使用该password字段?如果对某人来说只是偷偷摸摸地偷看的话并不容易。

我相信其他人可以想到其他事情。

于 2012-08-08T13:49:28.800 回答
0

一个简单的比较(这个值是否等于那个值)本身不会允许恶意代码。

我更担心你如何比较它。如果您正在进行直接比较,那么我希望您没有使用可能在世界其他任何地方使用的值(例如,用户自己设置的密码,他们可能在其他地方使用),因为访问 where存储的安全码显示安全码。这本身并不是什么大问题(攻击者已经拥有访问权限),除非它可能被硬编码到文件本身中(在这种情况下,一个揭示源的漏洞利用 - 并且多年来已经有一些 - 揭示了如何登录),但如果用户可以设置代码,那么您刚刚透露了他们可能在其他网站上使用的密码。

于 2012-08-08T13:27:41.437 回答