Библиотека knigago >> Компьютеры: Языки и системы программирования >> PHP >> РНР. Полное руководство и справочник функций


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1919, книга: Атаназ и лягушка
автор: Кристиан Пино

Книга «Атаназ и лягушка» Кристиана Пино — очаровательная детская басня о силе дружбы и важности принятия различий. История рассказывает об Атаназе, гордом и самовлюбленном лебеде, который смотрит свысока на своих болотных соседей, особенно на лягушку по имени Квакелла. Однако, когда Атаназ попадает в беду, именно Квакелла приходит ему на помощь. Через свои приключения Атаназ узнает ценный урок о том, что внешность может быть обманчива и что даже самые скромные из существ обладают способностью...

Михаил Юрьевич Лукьянов - РНР. Полное руководство и справочник функций

РНР. Полное руководство и справочник функций
Книга - РНР. Полное руководство и справочник функций.  Михаил Юрьевич Лукьянов  - прочитать полностью в библиотеке КнигаГо
Название:
РНР. Полное руководство и справочник функций
Михаил Юрьевич Лукьянов

Жанр:

PHP

Изадано в серии:

Полное руководство

Издательство:

Наука и Техника

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "РНР. Полное руководство и справочник функций"

Наша книга поможет вам освоить язык РПР практически с нуля - от самыхсамых основ до создания своих собственных приложений и библиотек кода. Пошаговые примеры помогут вам разобраться с многочисленными функциями РНР; вы узнаете, как правильно использовать строки; что такое массивы и какие действия с ними можно выполнять; вы узнаете, как используется ООП (объектно-ориентированное программирование) в РНР; научитесь использовать РНР-сеансы и получать доступ к параметрам формы и загруженным файлам; узнаете, как отправить Cookies и перенаправить браузер или как получить доступ к базам данных из РНР; поработаете с графикой в РНР и научитесь динамически генерировать изображения с помощью РНР; узнаете, как сделать свои веб-приложения безопасными и защитить их от наиболее распространенных и опасных атак и многое-многое другое. Большая часть книги посвящена подробному Справочнику функций РПР - для каждой функции в этом справочнике будет указано: ее имя, принимаемые параметры с типами данных, будет сказано, какой из параметров обязательный, а какой - нет, также будут приведены краткое описание функции, побочные эффекты, ошибки и возвращаемые функцией структуры данных. Для удобства справочник составлен в алфавитном порядке. Книга будет полезна программистам любого уровня - от самых начинающих до продвинутых пользователей, каждый найдет здесь для себя много полезного.

Читаем онлайн "РНР. Полное руководство и справочник функций". [Страница - 8]

слу-

,_ ----

.. -- ------- ---- -- - -----.... -- - ---- -.... ·- ---- -- - - -· -. -....... -- - --.. -.. -·

---

РНР. Полное руководство и справочник функций

чае она алфавитная, то есть не содержит каких-либо специальных симво­
лов, то ее безопасно использовать в обоих контекстах без экранирования.
Однако, когда вы не можете гарантировать корректное соответствие кон­
тексту (значение $var не может быть безопасным в каком-либо контексте),
значение должно экранироваться каждый раз для каждого контекста: в на­
шем примере оно должно быть экранировано дваждьi:
$url = array(
'value' => urlencode($value),
);
$link = "http://host/script.php?var={ $url['value']}";
$html = array(
'link' => htmlentities($link, ENT_QUOTES, 'UTF-8'),
);
echo "Щeлкнитe здесь";

Таким образом вы гарантируете, что ссылка может безопасно использовать­
ся и в НТМL-контексте HTML и в URL-контексте когда пользователь щел­
кает по ней (первое URL-кодирование (по сути экранирование) гарантиру­
ет, что значение $var будет сохранено).
Для большинства баз данных существует "родная" функция экранирова­
ния, специфичная для этой базы данных. Например, расширение MySQL
предоставляет функцию mysqli_real_escape_string{):
$mysql = array(
'usernam�• => mysqli_real_escape_string($clean['username']),
);
$sql = "SELECT * FROM profile
WHERE username = '{ $mysql['username']}'";
$result = mysql_query($sql);

Более безопасная альтернатива - использовать абстрактную библиотеку баз
данных, которая управляет экранированием для вас. Следующий пример
иллюстрирует данную концепцию с PEAR::DB:
$sql = "INSERT INTO users (last_name) VALUES (?)";
$db->query($sql, аггау($clean['last_name']) );

Хотя это не полный пример, он демонстрирует использование заполните­
ля (вопросительного знака) в SQL-зaпpoce. Здесь PEAR::DB должным обра­
зом экранирует данные в соответствии с требованиями вашей базы данных.
Более полное экранирование вывода включало бы экранирование НТМL­
элементов, НТМL-атрибутов,JаvаSсriрt-кода, CSS и URL. Пример 12.1 со­
держит демонстрационный класс, предназначенный для экранирования

ВI--...................---· ...........---------..------------.--.------------..----'

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

вывода в различных контекстах на основании правил экранирования кон­
тента, подготовленных проектом Open Web Application Security Project.
Пример 12. 1 . Экранирования вывода дnя разных контекстов
class Encoder
const ENCODE_SТYLE_НТML = О;
const ENCODE_SТYLE_JAVASCRIP T = 1;
const ENCODE_SТYLE_CSS = 2;
const ENCODE_SТYLE_URL = З;
const ENCODE_SТYLE_URL_SPECIAL = 4;
private static $URL_UNRESERVED_CHARS =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcedfghijklmnopqrstuvwxyz-_. ~•;
puЬlic lunction encodeForHTML($value)

{

$value = str_replace('&', '&', $value);
$value = str_replace('', '>', $value);
$v�lue = str_replace("", '"', $value);
$value = str_replace('\", '&#х27;', $value);
// ' не рекомендуется
$value = str_replace('/', '/', $value);/ / прямой слеш может помочь
//завершить НТМL-сущность
return $value;

puЬlic funclion encodeForHTMLAttribute($value)
{

return $this->_encodeString($value);

puЬlic lunction encodeForJavascript($value)
{

return $this->_encodeString($value, self::ENCODE_SТYLE_JAVASCRIPT);

puЬlic lunction encodeFor_URL($value)
{

.

return $this->_encodeString($value, self::ENCODE_SТYLE_URL_SPECIAL);

puЬlic lunction encodeForCSS($value)
{

relurn $this->_encodeString($value, self::ENCODE_SТYLE_CSS);

: .. ·-------········-····---·······-··---···--··········--········-·-·····---·-----&1

РНР. Полное руководство и справочник функций
/**
* Кодирует любые специальные символы в пути URL. Не изменяет прямой слеш,
* используемый для обозначения каталогов. Если ваши имена каталогов содержат
* слеши (редко), и·спользуйте urlencode но каждом компоненте каталога и затем
* соедините их вместе с помощью прямого слешо.
*
* Основано но http://en.wikipedio.org/wiki/Percent-encoding и
* http://tools.ietf.org/html/rfc3986

*/

puЬlic function encodeURLPoth($volue)
{

$1ength = mb_strlen($value);
if ($1ength == О) {
return $volue;

$outpul = ";
for ($i = О; $i < $1ength; $i++) {
$chor = mb_substr($volue, $i, 1 );
if ($chor == '/') {
// слеши разрешены в путях
$output .= $chor;

}
else if (mb_strpos(self::$URL_UNRESERVED_CHARS, $chor) == folse) {
// Не находится в незорезервировонном списке, поэтому
// будет закодировано
$output .= $this->_encodeChorocter($chor, self::ENCODE_SТYLE_URL);

}
else {
//Символ находится в незорезервировонном списке, поэтому пропускаем его
$output .= $chor;

relurn $output;

privote function _encodeString($volue, $style = self::ENCODE_SТYLE_НТML)
{

if (mb_strlen($volue) == О) {
return $volue;
$chorocters = preg_split('/(?
ServerName domainA.com
DocumentRool /web/siles/domainд
php_admin_value open_basedir /web/siles/domainд


Аналогично, вы можете настроить ее отдельно для каждого каталога или
URL в вашем файле httpd.conf:
# no каталогу

php_admin_value open_basedir /home/httpd/html/арр 1

# по URL

php_admin_value open_basedir /home/httpd/html/арр2


Директива open_basedir может быть установлена только в файле httpd.
conf, а не в файле .htaccess, и вы должны использовать опцию php_admin_
value --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

Книги схожие с «РНР. Полное руководство и справочник функций» по жанру, серии, автору или названию:

Laravel. Полное руководство. Мэтт Стаффер
- Laravel. Полное руководство

Жанр: PHP

Год издания: 2020

Серия: Бестселлеры o’reilly