Редактор Ewebeditor и fckeditork фильтрует одинарные кавычки
Мы использовали метод записи значений SQL=insert to Product(title,content)(' &request(title)& ' ,' &request(content)& ' ), поэтому мы нашли контент, который клиент КОПИРОВАЛ в редактор в это время. , и обнаружил, что: «Конечно, этот контент содержит одинарные кавычки». Оказывается, именно потому, что контент, отправленный клиентом в редактор, содержал одинарные кавычки, наш оператор SQL изменился, что эквивалентно SQL=insert in product( заголовок, содержание) значения («содержание». ,'content') становится SQL=insert to Product(title,content)values('content','content''). Если мы присмотримся, то поймем, что только потому, что в контенте есть дополнительная одинарная кавычка, происходит серьезная ошибка записи. Однако мы также удивлены тем, что, поскольку он написан неправильно, почему оператор SQL не выдает сообщение об ошибке, но также сообщает, что операция выполнена успешно? вспомните обычных маленьких хакеров 2003 года. Любите использовать «или» = «или» Метод фонового вторжения, похоже, использует ошибку, заключающуюся в том, что одинарные кавычки не фильтруются при выполнении SQL. В результате, независимо от того, как выполняется SQL, результат возвращает true. Ха-ха, я этого не ожидал. написание программы должно быть максимально простым и понятным, что тоже является ошибкой. Хорошо, проблема найдена. В будущем, прежде чем весь SQL будет введен в базу данных, мы будем фильтровать поля перед передачей значения, чтобы эта проблема больше не возникала. Ниже представлена очень полная функция фильтрации безопасности SQL. Вы можете просто использовать его. Он готов к вызову.
Функция HTMLEncode(Str)
Если Isnull(Str) Тогда
HTMLEncode =
Выход из функции
Конец, если
Str = Заменить(Str,Chr(0),, 1, -1, 1)
Str = Заменить(Str, , ", 1, -1, 1)
Str = Заменить(Str,<,<, 1, -1, 1)
Str = Заменить(Str,>,>, 1, -1, 1)
Str = Заменить(Str, script, sscript, 1, -1, 0)
Str = Заменить(Str, SCRIPT, SCRIPT, 1, -1, 0)
Str = Заменить(Str, Script, Script, 1, -1, 0)
Str = Заменить(Str, скрипт, Script, 1, -1, 1)
Str = Заменить(Str, объект, объект, 1, -1, 0)
Str = Заменить(Str, ОБЪЕКТ, OBJECT, 1, -1, 0)
Str = Заменить(Str, Объект, Oобъект, 1, -1, 0)
Str = Заменить(Str, объект, объект, 1, -1, 1)
Str = Заменить(Str, апплет, aпплет, 1, -1, 0)
Str = Заменить(Str, APPLET, APPLET, 1, -1, 0)
Str = Заменить(Str, Applet, Applet, 1, -1, 0)
Str = Заменить(Str, апплет, Aпплет, 1, -1, 1)
Str = Заменить(Str, [, [)
Str = Заменить(Str, ], ])
Str = Заменить(Str, , , 1, -1, 1)
Str = Заменить(Str, =, =, 1, -1, 1)
Str = Заменить(Str, ', '', 1, -1, 1)
Str = Заменить(Str, select, select, 1, -1, 1)
Str = Заменить(Str, выполнить, execute, 1, -1, 1)
Str = Заменить(Str, exec, exec, 1, -1, 1)
Str = Заменить(Str, join, join, 1, -1, 1)
Str = Заменить(Str, объединение, разблокировка, 1, -1, 1)
Str = Заменить(Str, где, где, 1, -1, 1)
Str = Заменить(Str, вставить, вставить, 1, -1, 1)
Str = Заменить(Str, удалить, удалить, 1, -1, 1)
Str = Заменить(Str, обновление, обновление, 1, -1, 1)
Str = Заменить(Str, нравится, like, 1, -1, 1)
Str = Заменить(Str, drop, drop, 1, -1, 1)
Str = Заменить(Str, создать, создать, 1, -1, 1)
Str = Заменить(Str, переименовать, переименовать, 1, -1, 1)
Str = Заменить(Str, count, count, 1, -1, 1)
Str = Заменить(Str, chr, chr, 1, -1, 1)
Str = Заменить(Str, Mid, mid, 1, -1, 1)
Str = Заменить(Str, усечь, усечь, 1, -1, 1)
Str = Заменить(Str, nchar, nch'r, 1, -1, 1)
Str = Заменить(Str, char, ch'r, 1, -1, 1)
Str = Заменить(Str, изменить, alter, 1, -1, 1)
Str = Заменить(Str, cast, ca't, 1, -1, 1)
Str = Заменить(Str, существует, exists, 1, -1, 1)
Str = Заменить(Str,Chr(13), , 1, -1, 1)
HTMLEncode = Заменить(Str,','', 1, -1, 1)
Конечная функция