diff --git a/~dev_rating/application/classes/Model/Admin/Students.php b/~dev_rating/application/classes/Model/Admin/Students.php index 03222f0317c848646a7b5b54395b2bbaba2d0cc7..e77fab402e3557a5b199ceee17a9b999a7db89ef 100644 --- a/~dev_rating/application/classes/Model/Admin/Students.php +++ b/~dev_rating/application/classes/Model/Admin/Students.php @@ -11,7 +11,8 @@ class Model_Admin_Students extends Model public function getGradeID($gradeNum, $degree) { - $sql = "SELECT `GetGradeID`('$gradeNum', '$degree') AS `ID`; "; + $degree = Database::instance()->escape($degree); + $sql = "SELECT `GetGradeID`('$gradeNum', $degree) AS `ID`; "; return DB::query(Database::SELECT, $sql)->execute()->get('ID'); } diff --git a/~dev_rating/application/classes/Model/DataArr/Students.php b/~dev_rating/application/classes/Model/DataArr/Students.php index 004887c8c1b0a2c8201cf3a1cc817f52595ca356..38d231e3734731ac1755966e12d956ad31e5b66c 100644 --- a/~dev_rating/application/classes/Model/DataArr/Students.php +++ b/~dev_rating/application/classes/Model/DataArr/Students.php @@ -41,7 +41,8 @@ class Model_DataArr_Students extends Model public function SearchStudents($GradeID, $GroupID, $FacultyID, $Name, $DisciplineID) { - $sql = "CALL `SearchStudents`('$GradeID', '$GroupID', '$FacultyID', '$Name', '$DisciplineID'); "; + $Name = Database::instance()->escape($Name); + $sql = "CALL `SearchStudents`('$GradeID', '$GroupID', '$FacultyID', $Name, '$DisciplineID'); "; return DB::query(Database::SELECT, $sql)->execute(); } } diff --git a/~dev_rating/application/classes/Model/DataArr/Teachers.php b/~dev_rating/application/classes/Model/DataArr/Teachers.php index a449650a3a9c72606891702afb78bd1bfaf1fef8..866d15006c04eab232011e7b202415230eec3028 100644 --- a/~dev_rating/application/classes/Model/DataArr/Teachers.php +++ b/~dev_rating/application/classes/Model/DataArr/Teachers.php @@ -21,12 +21,20 @@ class Model_DataArr_Teachers extends Model } public function searchTeachers($FacultyID, $DepartmentID, $Last, $First, $Second) { - $sql = "CALL `SearchTeachers`('$FacultyID', '$DepartmentID', '$Last', '$First', '$Second'); "; + $db = Database::instance(); + $Last = $db->escape($Last); + $Second = $db->escape($Second); + $First = $db->escape($First); + $sql = "CALL `SearchTeachers`('$FacultyID', '$DepartmentID', $Last, $First, $Second); "; return DB::query(Database::SELECT, $sql)->execute(); } public function searchTeacherNew($FacultyID, $DepartmentID, $Last, $First, $Second, $DisciplineID) { - $sql = "CALL `SearchTeacherNew`('$FacultyID', '$DepartmentID', '$Last', '$First', '$Second', '$DisciplineID'); "; + $db = Database::instance(); + $Last = $db->escape($Last); + $Second = $db->escape($Second); + $First = $db->escape($First); + $sql = "CALL `SearchTeacherNew`('$FacultyID', '$DepartmentID', $Last, $First, $Second, '$DisciplineID'); "; return DB::query(Database::SELECT, $sql)->execute(); } diff --git a/~dev_rating/application/classes/Model/System.php b/~dev_rating/application/classes/Model/System.php index 0ec6304bf4317f9dc43354a0b7f64075fe10b85a..ed77c95c1bac106e058fe72cfd5976c78621950f 100644 --- a/~dev_rating/application/classes/Model/System.php +++ b/~dev_rating/application/classes/Model/System.php @@ -4,6 +4,8 @@ class Model_System extends Model { public function getBitmaskForRoute($routeName) { + $db = Database::instance(); + $routeName = $db->escape($routeName); $sql = "SELECT `GetBitmaskByPagename`('$routeName') AS `Bitmask`; "; return DB::query(Database::SELECT, $sql)->execute()->get('Bitmask'); } diff --git a/~dev_rating/application/classes/Model/Teacher/Map.php b/~dev_rating/application/classes/Model/Teacher/Map.php index 30790463b0f54975102f59eea697894cc089000e..efe4beaa5801ce984cc1f534b031433789466482 100644 --- a/~dev_rating/application/classes/Model/Teacher/Map.php +++ b/~dev_rating/application/classes/Model/Teacher/Map.php @@ -25,7 +25,9 @@ class Model_Teacher_Map extends Model public function addModule($teacherID, $disciplineID, $title) { - $sql = "SELECT `AddModule`('$teacherID', '$disciplineID', '$title') AS `Num`;"; + $db = Database::instance(); + $title = $db->escape($title); + $sql = "SELECT `AddModule`('$teacherID', '$disciplineID', $title) AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } @@ -43,7 +45,9 @@ class Model_Teacher_Map extends Model public function changeModuleName($teacherID, $moduleID, $Name) { - $sql = "SELECT `ChangeModuleName`('$teacherID', '$moduleID', '$Name') AS `Num`;"; + $db = Database::instance(); + $Name = $db->escape($Name); + $sql = "SELECT `ChangeModuleName`('$teacherID', '$moduleID', $Name) AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } @@ -61,7 +65,9 @@ class Model_Teacher_Map extends Model public function changeSubmoduleName($teacherID, $submoduleID, $Name) { - $sql = "SELECT `ChangeSubmoduleName`('$teacherID', '$submoduleID', '$Name') AS `Num`;"; + $db = Database::instance(); + $Name = $db->escape($Name); + $sql = "SELECT `ChangeSubmoduleName`('$teacherID', '$submoduleID', $Name) AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } @@ -83,7 +89,9 @@ class Model_Teacher_Map extends Model public function changeSubmoduleMaxAndControl($teacherID, $SubmoduleID, $MaxRate, $ControlType) { - $sql = "SELECT `ChangeSubmoduleMaxAndControl`('$teacherID', '$SubmoduleID', '$MaxRate', '$ControlType') AS `Num`;"; + $db = Database::instance(); + $ControlType = $db->escape($ControlType); + $sql = "SELECT `ChangeSubmoduleMaxAndControl`('$teacherID', '$SubmoduleID', '$MaxRate', $ControlType) AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } @@ -126,13 +134,17 @@ class Model_Teacher_Map extends Model public function changeDisciplineControl($teacherID, $DisciplineID, $Control) { - $sql = "SELECT `ChangeDisciplineControl`('$teacherID', '$DisciplineID', '$Control') AS `Num`;"; + $db = Database::instance(); + $Control = $db->escape($Control); + $sql = "SELECT `ChangeDisciplineControl`('$teacherID', '$DisciplineID', $Control) AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } public function changeDisciplineHours($teacherID, $DisciplineID, $Hours, $Type) { - $sql = "SELECT `ChangeDisciplineHours`('$teacherID', '$DisciplineID', '$Hours', '$Type') AS `Num`;"; + $db = Database::instance(); + $Type = $db->escape($Type); + $sql = "SELECT `ChangeDisciplineHours`('$teacherID', '$DisciplineID', '$Hours', $Type) AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } @@ -191,8 +203,11 @@ class Model_Teacher_Map extends Model // } // deprecated (moved in helpers) - public function searchTeachers($FacultyID, $DepartmentID, $Name, $DisciplineID) { - $sql = "CALL `SearchTeachers`('$FacultyID', '$DepartmentID', '$Name', '$DisciplineID'); "; + public function searchTeachers($FacultyID, $DepartmentID, $Name, $DisciplineID) + { + $db = Database::instance(); + $Name = $db->escape($Name); + $sql = "CALL `SearchTeachers`('$FacultyID', '$DepartmentID', $Name, '$DisciplineID'); "; return DB::query(Database::SELECT, $sql)->execute(); } diff --git a/~dev_rating/application/classes/Model/errMessages.php b/~dev_rating/application/classes/Model/errMessages.php index 5ae82590bd648a655787cd82523399e79c922491..51d46d930484cada3481a6194640155cbe52c19a 100644 --- a/~dev_rating/application/classes/Model/errMessages.php +++ b/~dev_rating/application/classes/Model/errMessages.php @@ -11,7 +11,10 @@ class Model_errMessages extends Model public function newRequest($accID, $title, $description) { - $sql = "SELECT `CreateRequest`('$accID', '$title', '$description') AS 'Num'; "; + $db = Database::instance(); + $description = $db->escape($description); + $title = $db->escape($title); + $sql = "SELECT `CreateRequest`('$accID', $title, $description) AS 'Num'; "; return DB::query(Database::SELECT, $sql)->execute(); } diff --git a/~dev_rating/modules/account/classes/Model/Kohana/Account.php b/~dev_rating/modules/account/classes/Model/Kohana/Account.php index 677e86801b7ca93eccd67b0eb6ed0331c7de6a98..61cbbc65a740acf7063d7d64d867d0b267d290d4 100644 --- a/~dev_rating/modules/account/classes/Model/Kohana/Account.php +++ b/~dev_rating/modules/account/classes/Model/Kohana/Account.php @@ -4,7 +4,8 @@ class Model_Kohana_Account extends Model { public function setHashKey($key) { - $sql = "SELECT `SetHashKey`('$key') AS `Key`;"; + $key = Database::instance()->escape($key); + $sql = "SELECT `SetHashKey`($key) AS `Key`;"; $res = DB::query(Database::SELECT, $sql)->execute(); return $res->get('Key'); } @@ -17,49 +18,82 @@ class Model_Kohana_Account extends Model } public function checkAuth($login, $password) { - $sql = "SELECT `SignIn`('$login', '$password') AS `ID`;"; + $db = Database::instance(); + $login = $db->escape($login); + $password = $db->escape($password); + $sql = "SELECT `SignIn`($login, $password) AS `ID`;"; $res = DB::query(Database::SELECT, $sql)->execute(); return $res->get('ID'); } public function ChangeTeacherInfo($id, $lastName, $firstName, $secondName, $degreeID, $departamentID) { - $sql = "SELECT `ChangeTeacherInfo`('$id', '$lastName', '$firstName', '$secondName', '$degreeID', '$departamentID') AS `UserID`;"; + $db = Database::instance(); + $lastName = $db->escape($lastName); + $secondName = $db->escape($secondName); + $firstName = $db->escape($firstName); + $sql = "SELECT `ChangeTeacherInfo`('$id', $lastName, $firstName, $secondName, '$degreeID', '$departamentID') AS `UserID`;"; $key = DB::query(Database::SELECT, $sql)->execute(); return $key->get('UserID'); } public function createTeacher($lastName, $firstName, $secondName, $degreeID, $departamentID, $activationCode) { - $sql = "SELECT `CreateTeacher`('$lastName', '$firstName', '$secondName', '$degreeID', '$departamentID', '$activationCode') AS `UserID`;"; + $db = Database::instance(); + $lastName = $db->escape($lastName); + $secondName = $db->escape($secondName); + $firstName = $db->escape($firstName); + $activationCode = $db->escape($activationCode); + $sql = "SELECT `CreateTeacher`($lastName, $firstName, $secondName, '$degreeID', '$departamentID', $activationCode) AS `UserID`;"; $key = DB::query(Database::SELECT, $sql)->execute(); return $key->get('UserID'); } public function createTeacherByDepName($lastName, $firstName, $secondName, $departamentName, $facultyID, $activationCode) { - $sql = "SELECT `CreateTeacherByDepName`('$lastName', '$firstName', '$secondName', '$departamentName', '$facultyID', '$activationCode') AS `UserID`;"; + $db = Database::instance(); + $lastName = $db->escape($lastName); + $secondName = $db->escape($secondName); + $firstName = $db->escape($firstName); + $activationCode = $db->escape($activationCode); + $departamentName = $db->escape($departamentName); + $sql = "SELECT `CreateTeacherByDepName`($lastName, $firstName, $secondName, $departamentName, '$facultyID', $activationCode) AS `UserID`;"; $key = DB::query(Database::SELECT, $sql)->execute(); return $key->get('UserID'); } public function createStudent($lastName, $firstName, $secondName, $grade, $groupNum, $facultyID, $activationCode) { - $sql = "SELECT `CreateStudent`('$lastName', '$firstName', '$secondName', '$grade', '$groupNum', '$facultyID', '$activationCode') AS `UserID`;"; + $db = Database::instance(); + $lastName = $db->escape($lastName); + $secondName = $db->escape($secondName); + $firstName = $db->escape($firstName); + $activationCode = $db->escape($activationCode); + $sql = "SELECT `CreateStudent`($lastName, $firstName, $secondName, '$grade', '$groupNum', '$facultyID', $activationCode) AS `UserID`;"; $key = DB::query(Database::SELECT, $sql)->execute(); return $key->get('UserID'); } public function createStudentEx($lastName, $firstName, $secondName, $gradeNum, $groupNum, $degree, $specialization, $facultyID, $activationCode) { - $sql = "SELECT `CreateStudentEx`('$lastName', '$firstName', '$secondName', '$gradeNum', '$groupNum', '$degree', '$specialization', '$facultyID', '$activationCode') AS `UserID`;"; + $db = Database::instance(); + $lastName = $db->escape($lastName); + $secondName = $db->escape($secondName); + $firstName = $db->escape($firstName); + $activationCode = $db->escape($activationCode); + $degree = $db->escape($degree); + $specialization = $db->escape($specialization); + $sql = "SELECT `CreateStudentEx`($lastName, $firstName, $secondName, '$gradeNum', '$groupNum', $degree, $specialization, '$facultyID', $activationCode) AS `UserID`;"; $key = DB::query(Database::SELECT, $sql)->execute(); return $key->get('UserID'); } public function createSubject($name, $abbr, $facultyID) { - $sql = "SELECT `CreateSubject`('$facultyID', '$name', '$abbr') AS `Num`;"; + $db = Database::instance(); + $name = $db->escape($name); + $abbr = $db->escape($abbr); + $sql = "SELECT `CreateSubject`('$facultyID', $name, $abbr) AS `Num`;"; $response = DB::query(Database::SELECT, $sql)->execute(); return $response->get('Num'); } @@ -80,42 +114,48 @@ class Model_Kohana_Account extends Model public function changeMail($id, $mail) { - $sql = "SELECT `ChangeMail`('$id', '$mail') AS Num;"; + $mail = Database::instance()->escape($mail); + $sql = "SELECT `ChangeMail`('$id', $mail) AS Num;"; $query = DB::query(Database::SELECT, $sql)->execute(); return $query->get('Num'); } public function changeLogin($id, $login) { - $sql = "SELECT `ChangeLogin`('$id', '$login') AS Num;"; + $login = Database::instance()->escape($login); + $sql = "SELECT `ChangeLogin`('$id', $login) AS Num;"; $query = DB::query(Database::SELECT, $sql)->execute(); return $query->get('Num'); } public function changePassword($id, $password) { - $sql = "SELECT `ChangePassword`('$id', '$password') AS Num;"; + $password = Database::instance()->escape($password); + $sql = "SELECT `ChangePassword`('$id', $password) AS Num;"; $query = DB::query(Database::SELECT, $sql)->execute(); return $query->get('Num'); } public function getAccNumByLogin($login) { - $sql = "SELECT `GetAccCountByLogin`('$login') AS Num;"; + $login = Database::instance()->escape($login); + $sql = "SELECT `GetAccCountByLogin`($login) AS Num;"; $res = DB::query(Database::SELECT, $sql)->execute(); return $res->get('Num'); } public function getAccNumByMail($email) { - $sql = "SELECT `GetAccCountByMail`('$email') AS Num;"; + $email = Database::instance()->escape($email); + $sql = "SELECT `GetAccCountByMail`($email) AS Num;"; $res = DB::query(Database::SELECT, $sql)->execute(); return $res->get('Num'); } public function isActivationCodeValid($code) { - $sql = "SELECT `GetAccCountByCode`('$code') AS Num;"; + $code = Database::instance()->escape($code); + $sql = "SELECT `GetAccCountByCode`($code) AS Num;"; $res = DB::query(Database::SELECT, $sql)->execute(); foreach ($res as $value) { $count = $value['Num']; @@ -125,35 +165,46 @@ class Model_Kohana_Account extends Model public function createRecoveryToken($email, $token) { - $sql = "SELECT `CreateRecoveryToken`('$email', '$token') AS Num;"; + $db = Database::instance(); + $email = $db->escape($email); + $token = $db->escape($token); + $sql = "SELECT `CreateRecoveryToken`($email, $token) AS Num;"; $res = DB::query(Database::SELECT, $sql)->execute(); return $res->get('Num'); } public function getRecoveryInfoByEMail($email) { - $sql = "CALL GetRecoveryInfoByEMail('$email');"; + $email = Database::instance()->escape($email); + $sql = "CALL GetRecoveryInfoByEMail($email);"; $query = DB::query(Database::SELECT, $sql)->execute(); return $query; } public function getRecoveryInfoByToken($token) { - $sql = "CALL GetRecoveryInfoByToken('$token');"; + $token = Database::instance()->escape($token); + $sql = "CALL GetRecoveryInfoByToken($token);"; $query = DB::query(Database::SELECT, $sql)->execute(); return $query; } public function useRecoveryToken($token) { - $sql = "SELECT `UseRecoveryToken`('$token') AS Num;"; + $token = Database::instance()->escape($token); + $sql = "SELECT `UseRecoveryToken`($token) AS Num;"; $email = DB::query(Database::SELECT, $sql)->execute(); return $email->get('Num'); } public function activateAccount($login, $password, $email, $code) { - $sql = "SELECT `ActivateAccount` ('$code', '$login', '$email', '$password') AS `Num`; "; + $db = Database::instance(); + $login = $db->escape($login); + $password = $db->escape($password); + $email = $db->escape($email); + $code = $db->escape($code); + $sql = "SELECT `ActivateAccount` ($code, $login, $email, $password) AS `Num`; "; $res = DB::query(Database::SELECT, $sql)->execute(); foreach ($res as $value) { $id = $value['Num'];