2011-03-13 69 views
1

我使用livevalidation脚本来验证php表单,但我认为我的网站被黑了,因为一些输入允许插入数字不是字母。如何解决黑客的php表单

另一个问题黑客使我的选择标记插入数据错误不是我的形式。

那么请任何人都可以帮我吗?

+4

这是小Bobby表再次:http://xkcd.com/327/ – corsiKa 2011-03-13 21:58:02

+0

感谢您的adivce,但我是一个初学者在PHP开发,所以你可以告诉我,我怎么能找到一个giud帮助我 – maha 2011-03-13 22:02:26

+0

我会第一个承认这不是我的一杯茶:)那不是那么多的建议和更多的“这是一个关于这种事情的滑稽漫画。” – corsiKa 2011-03-13 22:04:27

回答

11

JavaScript无法提供安全的方式来检查数据。它只应该被视为方便用户。

您需要验证您在PHP服务器上获得的所有数据。

PS:您可能会发现Filtering功能非常有用,正则表达式,in_array()用于验证选择框等

+0

感谢您的adivse,但我是一个初学者在PHP开发,所以你能告诉我我怎么能找到一个giud来帮助我 – maha 2011-03-13 22:02:48

+0

@maha,这是一个非常广泛的问题。我手边没有任何资源(我相信别人会这么做),但基本上你需要检查表单提交的每个$ _GET或$ _POST变量,并确保它是你期望的。在搜索过滤功能的一些教程并尝试之后,您可以回来并开始提出新的问题,解决诸如“我如何验证电子邮件地址?”这样的具体内容。等等。 – Matthew 2011-03-13 22:05:47

0

我可以做:

if (isset($_GET['string']) && !empty($_GET['string']) && is_string($_GET['string'])) 

    $str = mysql_real_escape_string(stripslashes(trim($_GET['string']))); 

和:

if (isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])) 

    $id = trim($_GET['id']); 

你怎么看这个?

我不确定所有这些测试的有用性。

0

下载accunetix寻找一个免费版本的地方,它会让你测试你的应用程序的任何安全漏洞。它有一个很好的用户界面,易于使用,不像其他存在的垃圾。 accunetix.com

+0

还确保您的表单上的每个输入都被清除。无论它是一个复选框,选择,输入,收音机,按钮。黑客将尝试修改anythign以使您的网站达到他们想要的效果。 – 2011-03-14 00:22:29