Новые книги

Еще недавно компаниям требовались десятки лет, чтобы заработать миллиард. Сегодня многие бизнесы, такие как Snapchat, WhatssApp и Uber, проходят этот путь за пару лет. Мы вступили в эпоху высоких скоростей, теперь, чтобы выжить и преуспеть, компании вынуждены стремительно расти. Ключевой вопрос: как успешно конкурировать в этом новом мире? Как избежать пресловутых болезней роста? Ответ – стать экспоненциальной организацией.

Эта книга – практическое руководство по созданию экспоненциальных компаний и управлению ими. Авторы рассказывают об опыте бизнеса, который вписался в новые условия, и дают советы, как адаптировать к переменам существующие организации. Благодаря «Взрывному росту» любая компания, от стартапа до огромной корпорации, научится использовать новые технологии, для того, чтобы добиться экспоненциального роста.
The tutorials start with the most basic Windows program, the windows equivalent of "hello world!", Winnie. Then we move on to a more Generic program, which serves as a skeleton for a simple Windows application. Then we discuss various Controls. Using these controls one can build a complete dialog-based application, whose main window is a dialog. We are then ready to discuss a Generic Dialog, a framework with which one can quickly build specific dialogs.

To do some simple graphics one needs a Canvas object. You use Pens and Brushes to paint on the canvas.

More advanced topics include programming with Threads with a practical example of a Folder Watcher — a program that watches directories for changes.

Modern windows programming requires some knowledge of the Shell API, which leads us to the discussion of OLE and COM. We show how one can encapsulate OLE in C++ to create Smart OLE. OLE is also used in Automation, which lets your application talk to other applications.

Controls are nothing but specialized windows. You can easily create your own controls, as evidenced by the Splitter Bar tutorial.

For graphics programmer, we give a short introduction on using Bitmaps for animation and a more advanced tutorial on using Direct Draw.

Безопасность

Учебник РНР
Назад Вперёд

Глава 4. Безопасность

Содержание
Обзор
Двоичный CGI
Apache-модуль
Безопасность файловой системы
Безопасность баз данных
Сообщение об ошибке
Использование Register_Globals
Данные, отправляемые пользователем
Скрытие PHP
Оставаться на уровне

PHP это мощный язык и интерпретатор, подключён ли он к web-серверу как модуль или запускается как отдельный двоичный CGI. Он способен выполнять доступ к файлам, исполнять команды и открывать сетевые соединения на сервере. Эти свойства делают всё запускаемое на web-сервере небезопасным по умолчанию. PHP разработан специально как более безопасный язык для написания CGI-программ, чем языки Perl или C, с корректным выбором опций конфигурации времени компиляции и времени выполнения, удобным кодированием, что даёт вам сочетание свободы и необходимой защищённости.

Поскольку имеется много способов использования PHP, имеются и множество опций конфигурации, управляющих его поведением. Большое количество опций гарантирует, что вы можете использовать PHP для различных целей, но это также означает, что имеются комбинации этих опций и конфигураций серверов, которые дают незащищённую инсталяцию.

Гибкость конфигурации PHP эквивалентна гибкости кода. PHP можно использовать для построения законченных серверных приложений со всеми возможностями пользователя оболочки/shell, или использовать его для простых серверных включений с минимальным риском в жёстко контролируемой среде. То, как вы выстроите окружение и насколько безопасной оно будет, в большой степени зависит от PHP-разработчика.

Эта глава начинается с общего рассмотрения проблем обеспечения безопасности, различных комбинаций опций конфигурации и ситуаций, когда они могут безопасно использоваться. Также даётся описание кодирования для различных уровней безопасности.

Обзор

Абсолютно безопасных систем не существует, поэтому используется некий баланс риска и удобства использования. Если каждая переменная, отправляемая пользователем, требует двух форм биометрической проверки (такой как сканирование сетчатки глаза и отпечатки пальцев), вы получите предельно высокий уровень безопасности. Заполнение очень сложной формы займёт полчаса, что побудит пользователей находить способы обойти защиту.

Достаточный уровень защиты обеспечивает соответствие требованиям безопасности без ухудшения условий работы пользователя или излишнего усложнения работы автора-кодировщика. Вместе с тем, некоторые атаки могут использовать этот стиль обеспечения защиты, что приводит к её постепенному ослаблению.

Обычно плохо помнят фразу: надёжность системы определяется её самым слабым звеном. Если все транзакции основательно защищены на основе логинга по времени, размещению, типу транзакции etc., но пользователь проверяется только по единственной куке, надёжность связки пользователя и log'а транзакций будет серьёзно нарушена.

При выполнении тестирования помните, что не сможете проверить все варианты, даже для простейшей страницы. Вывод, который вы ожидаете, может совсем не соответствовать тому, что увидит недовольный служащий, кракер с многолетним стажем или домашний кот, гуляющий по клавиатуре компьютера. Поэтому лучше смотреть на код с учётом логической перспективы, чтобы разобраться, где могут быть введены неожиданные данные; как его модифицировать, уменьшить или расширить.

Internet заполнен людьми, пытающимися сделать себе имя на том, что они разрушат ваш код, завалят ваш сайт, разместят на нём неподходящее содержимое, и вообще желающими сделать вашу жизнь интересной. И неважно, маленький или большой у вас сайт, вы всегда являетесь мишенью, находясь online и имея сервер, с которым можно соединиться. Многие программы-кракеры невелики по размеру, они просто просматривают массивы блоков IP, выискивая жертву. Не будьте одной из них.


Назад Оглавление Вперёд
Конфигурация Вверх Двоичный CGI