【问题标题】:Strange php behaviour on some text field input某些文本字段输入上的奇怪 php 行为
【发布时间】:2014-11-14 00:27:48
【问题描述】:

我正在为一个小项目使用 codeigniter。我去做了一些测试,看看我对 sql 注入的保护有多好。在收到奇怪的重定向后,我做了一个非常简单的应用程序来查看结果是否相同。它是。我在说什么。我有这样的看法:

<form action="/test" method="post">
<input type="text" name="d">
<input type="text" name="c">
<button type="submit">Sign in</button>
</form>

<? 
    if(isset($_POST['d'])) echo $_POST['d'];
    echo '<br>';
    if(isset($_POST['c'])) echo $_POST['c'];

?>

还有一个简单的控制器,它绑定到它的索引函数来加载这个视图。我在字段中的某些特定输入上得到了非常奇怪的行为。例如,如果我想在其中一个字段中点击 1=1,则页面会转到 404 错误,在我的项目之外,转到提供我使用的主机服务的站点。在输入上测试了一些类型。在第二个输入中,我可以输入任何内容。但首先,如果它像 integer=integer 它会发疯。例如,1=1a 是可以的。

【问题讨论】:

    标签: php html forms codeigniter


    【解决方案1】:

    您可能正在处理SQL injection 问题。您的托管服务可能有一些产生 404 的 sql 注入预防软件。

    您是否使用填写的数据查询您的数据库? 如果你这样做,请确保你escape the data

    您可以在第二个字段中填写任何内容,这可能是因为您对数据进行了哈希处理。

    示例:

    echo md5("1=1");//50347a3f14aea923e9f8eac867fd3bb1
    

    【讨论】:

    • 我不询问。 index.php 是您在上面看到的代码片段。就这些。而且我不在任何字段上使用 md5,但第二个不受影响。我发现“=”,也随机重定向我。在另一台主机上就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2014-02-14
    相关资源
    最近更新 更多