即使使用mysql_real_escape_string()函数,是否有SQL注入的可能性?
SQL是像这样在PHP中构建的:
$login = mysql_real_escape_string(GetFromPost('login'));
$password = mysql_real_escape_string(GetFromPost('password'));
$sql = ""SELECT * FROM table WHERE login='$login' AND password='$password'"";
听到很多人说,即使使用mysql_real_escape_string()函数,这样的代码仍然是危险的,甚至可能破解。
比如这样的经典注入:
aaa' OR 1=1 --
如果你的回调决定传播是否应该停止,我发现将$event对象传递给回调是有用的。
<div ng-click="parentHandler($event)">
<div ng-click="childHandler($event)">
</div>
</div>
然后在回调本身中,您可以决定是否停止事件的传播:
$scope.childHandler = function ($event) {
if (wanna_stop_it()) {
$event.stopPropagation();
}
...
};
ngClick指令(以及所有其他事件指令)创建$event在相同范围内可用的变量。这个变量是对JS event对象的引用,可以用来调用stopPropagation():
<table>
<tr ng-repeat="user in users" ng-click="showUser(user)">
<td>{{user.firstname}}</td>
<td>{{user.lastname}}</td>
<td>
<button class="btn" ng-click="deleteUser(user.id, $index); $event.stopPropagation();">
Delete
</button>
</td>
</tr>
</table>