Библиотека Anti Sql для инъекций C # Asp.NET - PullRequest
0 голосов
/ 27 марта 2012

Может кто-нибудь предложить такую ​​библиотеку для Asp.NET 1.1?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2014

Ссылка на антиинъекционный SQL

    <?PHP
        FUNCTION anti_injection( $user, $pass ) {
               // We'll first get rid of any special characters using a simple regex statement.
               // After that, we'll get rid of any SQL command words using a string replacment.
                $banlist = ARRAY (
                        "insert", "select", "update", "delete", "distinct", "having", "truncate", "replace",
                        "handler", "like", " as ", "or ", "procedure", "limit", "order by", "group by", "asc", "desc"
                );
                // ---------------------------------------------
                IF ( EREGI ( "[a-zA-Z0-9]+", $user ) ) {
                        $user = TRIM ( STR_REPLACE ( $banlist, '', STRTOLOWER ( $user ) ) );
                } ELSE {
                        $user = NULL;
                }
                // ---------------------------------------------
                // Now to make sure the given password is an alphanumerical string
                // devoid of any special characters. strtolower() is being used
                // because unfortunately, str_ireplace() only works with PHP5.
                IF ( EREGI ( "[a-zA-Z0-9]+", $pass ) ) {
                        $pass = TRIM ( STR_REPLACE ( $banlist, '', STRTOLOWER ( $pass ) ) );
                } ELSE {
                        $pass = NULL;
                }
                // ---------------------------------------------
                // Now to make an array so we can dump these variables into the SQL query.
                // If either user or pass is NULL (because of inclusion of illegal characters),
                // the whole script will stop dead in its tracks.
                $array = ARRAY ( 'user' => $user, 'pass' => $pass );
                // ---------------------------------------------
                IF ( IN_ARRAY ( NULL, $array ) ) {
                        DIE ( 'Invalid use of login and/or password. Please use a normal method.' );
                } ELSE {
                        RETURN $array;
                }
        }


      [1]: http://psoug.org/snippet/PHP-Anti-SQL-Injection-Function_18.htm


  [1]: http://psoug.org/snippet/PHP-Anti-SQL-Injection-Function_18.htm
0 голосов
/ 27 марта 2012

Есть из чего выбирать, но, честно говоря, ваш лучший инструмент - это образование. Зная, как это предотвратить самостоятельно. Инструменты, встроенные в обычную библиотеку классов Framework, вполне адекватны при правильном использовании.

Простое использование параметризованных запросов и / или хранимых процедур для каждого вызова базы данных - ваша лучшая профилактика.

Однако, тем не менее, мы используем Microsoft.Practices.EnterpriseLibrary.Data классы, предоставляемые библиотекой Microsoft Patterns and Practices. Те, которые мы используем, немного устарели, но все же прекрасно справляются со своей задачей. Они обеспечивают защиту от инъекций, а также упрощают доступ к данным. Но они не единственный и не обязательно лучший инструмент для работы.

Более свежую информацию о текущей библиотеке шаблонов и практик можно найти здесь .

...