我遇到了一个特殊字符问题,我使用该脚本执行命令向我的游戏服务器发送用户名以奖励他们进行投票。如何从GET提交中删除特殊字符
<form action="index.php" method="GET"> <input type="submit" value="Submit" /> </form>
它提交到正确的信息特殊字符和所有的数据库 - 但是当执行到我的游戏服务器就否定了特殊字符,他们可以通过使用名称Testusername /或Testusername滥用它//和每天获得多个奖励。
我试过使用隐藏类型,但我的系统无法使用POST。
任何想法?我很无奈。
编辑*
任何0-9 _ AZ字符允许的特殊字符为!@#$%^ * &()_ +} {}等我使用逃生字符串和我不担心sql注入我尝试了多种消毒方式,他们都失败了。我使用的是mySQL,但不是用于发送作为日志的奖励,并且验证在过去24小时内没有投票并阻止他们再次进行投票的用户。基本上说,他们投票用户名测试,并得到他们的奖励和投票用户名测试/和它说测试投票再次游戏和接收X2奖励
你是什么意思的特殊字符?喜欢......口音? UTF-8?或者像*&^ $这样的字符! @#)({} []等等?你真的需要小心在数据库中允许使用特殊字符,确保使用php的内建函数来保护你的SQL免受注入。[mysqli_escape_string()](http:/ /us3.php.net/manual/en/function.mysqli-escape-string.php) [stripslashes()](http://us3.php.net/manual/en/function.stripslashes.php)我们真的需要更多的信息来帮助你从你给我们的总体概述来看,问题出在逻辑本身上如果你使用的是MySQ – CrazyVipa 2012-07-16 17:50:28
你知道远程服务器上允许使用哪些字符和序列吗?你可能需要将允许的字符列入白名单,而不是删除特定的字符,数据的来源(GET/POST)是无关紧要的,这将有助于更多地了解:*“当执行到我的游戏服务器时否定特殊字符“* – 2012-07-16 17:56:54
http://www.youtube.com/watch?v=T15IkJhVpvg有趣的过滤教程,FYI。 – Brant 2012-07-17 19:58:19