小编Mit*_*ell的帖子

mysql_real_escape_string的缺点?

我在这里看到一些人说使用连接查询mysql_real_escape_string不会保护你(完全)免受SQL注入攻击.

但是,我还没有看到一个输入示例,它说明了一种mysql_real_escape_string无法保护你的攻击.大多数示例忘记了mysql_query仅限于一个查询并且使用mysql_real_escape_string不正确.

我能想到的唯一例子如下:

mysql_query('DELETE FROM users WHERE user_id = '.mysql_real_escape_string($input));
Run Code Online (Sandbox Code Playgroud)

这不会保护您免受以下输入:

5 OR 1=1
Run Code Online (Sandbox Code Playgroud)

我认为这是错误的使用mysql_real_escape_string而不是缺点,它是为字符串而不是数值设计的.您应该转换为数字类型,或者如果要在清理时将输入视为字符串,则应在查询中执行相同操作并在其周围加上引号.

任何人都可以提供一个可以绕过的输入示例mysql_real_escape_string,它不依赖于对数值的错误处理或忘记mysql_query只能执行一个查询吗?

编辑:我对它的局限性感兴趣,mysql_real_escape_string而不是将它与替代品进行比较,我意识到新项目有更好的选择,我并不反对.

php mysql sql-injection mysql-real-escape-string

12
推荐指数
1
解决办法
2128
查看次数

附加到jQuery Datepicker模糊事件

我正在研究一个用于文本框的jQuery插件,我希望它能与使用文本框的jQueryUI小部件一起工作,例如datepicker.这导致我出现问题,因为似乎在实际设置值之前抛出了datepicker上的blur事件.

我使用的一种解决方法是在执行代码之前设置超时,以便有时间设置datepickers值.见下面的代码:

$(this).blur(function() {
    // $(this).val() == ""
    var elem = $(this);
    setTimeout(function() {
        //elem.val() != ""
    },100);
});
Run Code Online (Sandbox Code Playgroud)

我不确定这种解决方法是解决问题的最佳解决方案,甚至是否能够始终有效.如果我将超时设置为10毫秒而不是100,它不起作用 - 我担心如果代码执行速度慢,100可能并不总是足够.

谁能想到更好的解决这个问题的方法呢?

jquery jquery-ui blur datepicker javascript-events

6
推荐指数
2
解决办法
1万
查看次数

jQuery - 当你需要等待所有数据时,在循环中调用getJSON的最佳方法?

我有一种情况需要进行几次getJSON调用,并且一旦返回所有数据就调用另一个函数,就像这样(例如简化代码):

var data = {};
for (var i in a) {
    $.getJSON(base_url+i, function(d) {
        data[i] = d;
    });
}
do_something(data);
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为我在getJSON调用返回任何数据之前调用do_something.

我目前解决此问题的方法是同步进行调用,如下所示:

var data = {};
$.ajaxSetup({'async':false});
for (var i in funcs) {
    $.getJSON(base_url+i, function(d) {
        data[i] = d;
    });
}
$.ajaxSetup({'async':true});
do_something(data);
Run Code Online (Sandbox Code Playgroud)

我的问题是,有更好的方法可以做到这一点,还是我最好同步进行如上所述的呼叫?

ajax jquery asynchronous synchronous getjson

4
推荐指数
1
解决办法
4312
查看次数

iOS - Adding Target/Action for UITextField Inside Custom UITableViewCell

I have UITableView which uses a custom UITableViewCell containing a UITextField.

I want to call a method (myMethod) when it is clicked (UIControlEventTouchDown) and attempted to wire this up inside the UITableView delegate method cellForRowAtIndexPath by doing the following:

[tf addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventTouchDown];
Run Code Online (Sandbox Code Playgroud)

When the UITextField is clicked, nothing happens.

I attempted to do the exact same thing for another UITextField outside of the UITableView:

[othertf addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventTouchDown];
Run Code Online (Sandbox Code Playgroud)

When I click on othertf …

cocoa-touch objective-c uitableview uikit ios

3
推荐指数
1
解决办法
8817
查看次数