我在这里看到一些人说使用连接查询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
而不是将它与替代品进行比较,我意识到新项目有更好的选择,我并不反对.
我正在研究一个用于文本框的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可能并不总是足够.
谁能想到更好的解决这个问题的方法呢?
我有一种情况需要进行几次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)
我的问题是,有更好的方法可以做到这一点,还是我最好同步进行如上所述的呼叫?
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 …
jquery ×2
ajax ×1
asynchronous ×1
blur ×1
cocoa-touch ×1
datepicker ×1
getjson ×1
ios ×1
jquery-ui ×1
mysql ×1
objective-c ×1
php ×1
synchronous ×1
uikit ×1
uitableview ×1