Перегляд за місяцем: August 2008
Null Pointers Are Another Name For Undefined Values
Недавно в сайтах на Coldfusion 8 стала появлятся такая вот непонятная ошибка
Null Pointers are another name for undefined values.
Ошибка "лечилась" простой перезагрузкой вызываемой страницы (F5), казалось что это и не ошибка вовсе. Дебаггер не выводил ничего путного, строки, на которые указывала Coldfusion не содержали ничего близко похожего, и к тому же всегда разнились.
После гугления прояснилось. Все эти сайты были построены на MySQL 5. Дело было в настройке для MySQL датасорса - "Maintain Connections" - по-умолчанию установленной в true. Coldfusion пыталась не закрывать коннекшен, и вероятно, MySQL делала это в одностороннем порядке. При попытке соединится с базой, Coldfusion падала с такой неясной ошибкой.
Чтобы отключить эту опцию, в Coldfusion Administrator -� Datasources при редактировании источника данных нажмите кнопку Show Advanced Settings и снимите галочку "Maintain Connections".
Ну используйте же вы CFQUERYPARAM !
С таким призывом обратился к Coldfusion разработчикам Бен Форта (Ben Forta).
За последний месяц прокатилась волна атак sql-injection на Coldfusion сайты. Вероятно, это произошло после одной публикации на хакерском сайте (ссылку не даю умышленно :) о векторе атак на CF-сайты. В целом все сводилось к тому, что
- не используются cfqueryparam для подстановки данных в запросы;
- используется "сборка" sql-запроса отдельной строкой и выполнение ее через и preserveSingleQuotes();
- на production-серверах не отключается robust debugging information
Все это - НЕ УЯЗВИМОСТИ COLDFUSION, это уязвимости слабого кода написанного слабыми программистами. Но последние события показывают, что такого кода много... И отдельное "спасибо" гуглу за поиск по расширению файла :)
Может, волна аттак связана с докладом о Coldfusion на встрече DOU в начале августа ? :-)
Забавно, но в 2005 году Бен говорил тоже самое... и в 2002 году он говорил...
Coldfusion 7 и недостающие libstdc++
При вызове веб-сервиса через <cfinvoke>, у Coldfusion 7 работающей под Linux, может случиться паника из-за отсутствующих (как ей кажется) библиотек libstdc++.
Errors reported by Java compiler
/opt/coldfusionmx7/runtime/bin/jikesw: error while loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory
Однако, причина лишь в том что библиотеки оказываются более новыми, чем Coldfusion их ожидает увидеть (особенно под новыми версиями Linux)
Решение очень простое (это сделано под CentOS 5, у вас может быть другой пакет)
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2
Просто "подменив" модуль, мы тыкаем Coldfusion носом в новую версию библиотек, которые она не хотела видеть.
