2012-08-08 53 views
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。对不起,没有指定。 :)

+8

取决于您使用'$ enteredCode'完成的操作。如果你使用'eval()',那么是的。 – 2012-08-08 13:11:00

+2

你在用$ enteredCode做什么?你的问题的答案取决于这一点。 – vascowhite 2012-08-08 13:11:31

+0

可能的重复[防止PHP中的SQL注入的最佳方式](http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php) – vascowhite 2012-08-08 13:12:59

回答

3

你不是任何具有该值,只要你显示。
因此,在这段代码中没有什么东西可以被滥用。

+0

好的,我编辑了它。 – RedRocker227 2012-08-08 13:14:22

+0

不是。它是一个“字符串”。 – Prasanth 2012-08-08 13:15:16

+0

@Red只需将一个变量简单地分配给另一个变量或比较或类似的东西,根本不存在任何风险。您需要“评估”任意文本,将其连接到SQL查询(然后得到评估)或HTML(然后得到评估),使用该值访问系统上的任何内容(文件路径等),以防恶意发生。 – deceze 2012-08-08 13:16:34

0

一个简单的比较(该值等于该值)本身不允许恶意代码。

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

1

了我的头顶部,可能出现的问题:

  1. 检查安全代码:

    • 是否使用数据库来做到这一点 - 如果是这样,SQL注入
    • 使用一个文件在你的服务器上检查代码,有人可以嗅探某些物体的相似文件
    • 你使用的是外部程序 - 有很多困难,包括(但不是linite d到)外壳,参数,文件名等
  2. 安全代码是什么意思?代码只是意味着访问一个简单的文本文件,包括添加其他用户,删除用户,....这里的列表是无止境的

  3. 如果另一个人(比如说在图书馆里)忽略了用户肩上的那个代码以纯文本形式还是使用password字段?如果不容易有人只是一个sneeky偷看。

我确定其他人可以考虑其他事情。