<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: OpenNews: Десять правил написания безопасного кода на PHP</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/3386.html</link>
    <description>В серии статей &quot;Ten Security Checks for PHP&quot; кратко рассматриваются 10 наиболее часто совершаемых PHP программистами ошибок, приводящих к проблемам с безопасностью скриптов.&lt;br&gt;&lt;br&gt;Кратко, пересказ:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Избегайте использования переменных сформированных на основании данных пользователя в функции включения файла (include, require) или доступа к файлу (readfile, fopen, file). Например: include($lib_dir . &quot;functions.inc&quot;); include($page); переменные $lib_dir и $page перед этим нужно проверить либо на предмет наличия запрещенных символов, либо сопоставить с заранее определенным массивом допустимых значений:&lt;br&gt;&lt;br&gt;&lt;br&gt;$valid_pages = array(&lt;br&gt;  &quot;apage.php&quot;   =&amp;gt; &quot;&quot;,&lt;br&gt;  &quot;another.php&quot; =&amp;gt; &quot;&quot;,&lt;br&gt;  &quot;more.php&quot;    =&amp;gt; &quot;&quot;);&lt;br&gt;if (!isset($valid_pages&#091;$page&#093;)) &#123;&lt;br&gt;   die(&quot;Invalid request&quot;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;if (!(eregi(&quot;^&#091;a-z_./&#093;*$&quot;, $page) &amp;&amp; !eregi(&quot;&#092;&#092;.&#092;&#092;.&quot;, $page))) &#123;&lt;br&gt;   die(&quot;Invalid request&quot;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Необходимо экранировать опасные символы (&#092; и &apos;) в переменных участвующих в SQL запросах.Например, злоумышленник может передать переменную вида &quot;p</description>

<item>
    <title>Десять правил написания безопасного кода на PHP (Pilat)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/3386.html#2</link>
    <pubDate>Fri, 18 May 2007 13:07:16 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Необходимо экранировать опасные символы (&#092; и &apos;) в &lt;br&gt;&amp;gt;&amp;gt;переменных участвующих в SQL запросах.Например, &lt;br&gt;&amp;gt;&amp;gt;злоумышленник может передать переменную вида &lt;br&gt;&amp;gt;&amp;gt;&quot;password=a&#037;27+OR+1&#037;3Di&#037;271&quot; которая будет &lt;br&gt;&amp;gt;&amp;gt;использована в SQL запросе как &quot;Password=&apos;a&apos; or &lt;br&gt;&amp;gt;&amp;gt;1=&apos;1&apos;&quot;. Решение: включить magic_quotes_gpc в &lt;br&gt;&amp;gt;&amp;gt;php.ini или экранировать переменные самостоятельно&lt;br&gt;&amp;gt;&amp;gt; через addslashes();&lt;br&gt;&lt;br&gt;Прото вредный совет. Надо использовать prepare(&apos;select * from passwd where password=?&apos;) и execute($password)</description>
</item>

<item>
    <title>Десять правил написания безопасного кода на PHP (TaranTuL)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/3386.html#1</link>
    <pubDate>Mon, 08 Mar 2004 12:32:42 GMT</pubDate>
    <description>&amp;gt;&amp;gt;При использовании не mod_php, а CGI варианта &lt;br&gt;&amp;gt;&amp;gt;php.cgi не забывайте, что через php.cgi можно &lt;br&gt;&amp;gt;&amp;gt;получить доступ к любому файлу в директориях &lt;br&gt;&amp;gt;&amp;gt;защищенных через .htaccess, так как доступ в этом &lt;br&gt;&amp;gt;&amp;gt;случае ограничен только для прямых запросов, но &lt;br&gt;&amp;gt;&amp;gt;не для запросов через CGI скрипт php.cgi. &lt;br&gt;&lt;br&gt;давно устрарело, пхп сама проверяет как ее вызвали и при прямом вызове генерит ошибку.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
