angularjs 의 sql injection 공격 차단
sql injection 공격 시 제거해야할 문자열을 배열로 나열해 놓은 겁니다.
해당 구문은 angularjs 언어의 구문입니다.
// Array value to check for SQL Injection
$scope.sqlInjectionArray = ['create', 'drop', 'delete', 'insert', 'update', 'truncate',
'grant', 'print', 'sp_executesql', 'objects', 'declare',
'table', 'into', 'sqlcancel', 'sqlsetprop', 'sqlexec',
'sqlcommit', 'revoke', 'rollback', 'sqlrollback', 'values',
'sqldisconnect', 'sqlconnect', 'system_user', 'schema_name',
'schemata', 'information_schema', 'dbo', 'guest', 'db_owner',
'db_', 'table', '@@', 'Users', 'execute', 'sysname', 'sp_who',
'sysobjects', 'sp_', 'sysprocesses', 'master', 'sys', 'db_',
'is_', 'exec', 'end', 'xp_', '; --', 'alter', 'begin', 'cursor',
'kill', '--', 'tabname', 'sys'];
사용법은 아래와 같습니다. 필터 함수를 통해 매칭이 되면 경고창으로 알려줍니다.
for (var i = 0; i < $scope.sqlInjectionArray.length-1; i++) {
if ($filter('lowercase')($scope.Querys).match($scope.sqlInjectionArray[i])) {
alert("Sorry " + $scope.sqlInjectionArray[i] + " keyword is not accepted in select query");
return;
}
}