Проверяйте и экранируйте все входящие параметры и все что достаете из базы
Кукисы генерировать нужно так чтобы их не получилось подделать через js в обычной консоли.
Ну и говнокод порождает кучу дыр, поэтому основной рецепт, писать четкий код.
Ну еще проверять все загружаемые файлы на сервер.
Сложные пароли для базы + грамотные права доступа в linux - вот основной рецепт.
В книгах таких рецептов не дадут, в php глазами хакера точно, уж больно там говнокодеро все написано.