даже не знаю как отнестись к taint mode

PHP, Программирование

22.12.2006 17:53 5 лет, 4 месяца назад

Идут разговоры о taint php mode и включать его в следующие php или не включать.

(Wietse Venema, the creator of the Postfix MTA, posted a proposal for a “taint mode to the PHP internals list.)

Вкратце: есть внешние данные, есть внутренние данные. Внешние – это всё, что поступает через POST, GET, COOKIE. Автоматом внешние данные помечаются как небезопасные до их обработки. То есть если сразу сделать INSERT INTO table value ‘{$xxx}’, то типа какое-нибудь предупреждение – вроде E_TAINT. Такой вот флаг, который снимается после обработки stripslashes или htmlspeshialshars. Вроде как и в dev mode такой warning не помешает, но кривые руки никто не сможет отменить никогда – это тоже php, да и любой язык в принципе. Ну как можно вообще не проверять внешние данные? Недавний взлом (SQL injection) top.mail.ru – через ?url=-1′ UNION SELECT … это же вообще полный пиздец. То же – про банк Таджикистана. Не ломал, и не собираюсь, dev – это всегда светлая сторона медали, хак – сцуко – тёмная сторона, но быть в курсе следует всегда.

p.s. Альшанетский предлагает аналог тоже – Filter Extension

о!

PHP, Администрирование

21.12.2006 08:53 5 лет, 5 месяцев назад

XCacher имеет API для PHP, чтобы кешить в память наподобие memcached=) Уже тестирую.

Навроде:
This guest book has been visited <?php
echo xcache_inc
(“count”); ?> times.

+ get, set итп

So, my tests showed me that when my application is using xcache_set/xcache_get it's 20% faster
than using memcache_set/memcache_get. This may be also because of memcache_(p)connect,
i didn't compared just set/get functionality.
xcache_get/set copy the memory directly(good, rasmus said it's much faster),
while memcache_set/get use un/serialize and pack/unpack from/to tcp/unix-socket packet(bad).

от те на! Ну и прирост хороший скорости на многопроцессорных машинах именно – там настроечка есть xcache.count -> cpu’s+1

p.s для разработчиков под win32 – это один и тот же extension – что под win, что под *nix! Не проблема поставить win32 memcached, но не для всех.

на форумах Eaccelerator вышел на новичка – XCache

PHP, Администрирование

21.12.2006 08:21 5 лет, 5 месяцев назад

Очередной акселератор php

http://trac.lighttpd.net/xcache/wiki/

от разработчика lighttpd да ещё всякие сервер статусы выводит в html, хвалят в общем, 5.2.0 full support

и кстати!!!

PHP

04.12.2006 22:05 5 лет, 5 месяцев назад

5.2.0 реально имеет баг! Я раньше подумал, что оно не пустой Post даёт только у меня на одной машинке, причём виндовой, причём девелоперской, но на второй и из ТОГО ЖЕ дистрибутива – не было. Подумал, что глюк. Но на одном крупном production решил подняться с 5.0.6 до 5.2.0 сегодня. И что вышло? Та же фигня – непустой пост! Быстро поставил 5.1.6 со включенной mm library, чтобы сессии хранились не на диске, а в памяти. И всё стало ок. Так, что с 5.2.0 по любому не всё просто, несмотря на кучу исправленных ошибок.

989

PHP, Программирование

25.11.2006 08:14 5 лет, 5 месяцев назад

У php 5.2.0 по ходу теперь POST всегда не пустой, содержит удалённый IP адрес. А вот не надо было использовать if($_POST)! Куча проектов могут перестать работать со старым кодом хз какой давности.

blitz

PHP, Администрирование

05.11.2006 04:38 5 лет, 6 месяцев назад

понравился blitz! Blitz Templates – еще один парсер шаблонов для php, но он мощнее php_templates!

сегодня Eaccelerator обновился до релиза

PHP, Администрирование

11.10.2006 14:07 5 лет, 7 месяцев назад

на sourceforge уже лежит, а на основном сайте пока нет инфы.
http://sourceforge.net/project/showfiles.php?group_id=122249

кусочки Ruby vs PHP

PHP, Ruby, Программирование

11.10.2006 13:20 5 лет, 7 месяцев назад

Ruby:

irb(main):001:0> a = 1;b = 2;c = a + b;print c3

PHP:

$a = 1;$b = 2; $c = $a + $b; print $c;


Ruby:

irb(main):001:0> lang = Hash["Ruby" => "Because it's great", "PHP" => "It's terrible"] => {"Ruby"=>"Because it's great", "PHP"=>"It's terrible"}irb(main):002:0> lang["Ruby"]=> "Because it's great"

PHP:

$cms = array("Drupal" => "Because it's great","Nuke" => "It's terrible"); echo $cms["Drupal"];$cms = array("Drupal" => array("Because it's great","1","2"),"Nuke" => "It's terrible"); echo $cms["Drupal"][0];

Ruby:

count's from 0->100 by 5'sirb(main):003:0> 0.step(100,5) { |i| print i, " "}0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 => 0

PHP:

for ($i=0;$<=100;$i+=5); echo $i; done

Ruby:

takes a string of 5 numbers, puts it into an array. a[3] calls the 4th element and you get an output of 4 :)

irb(main):008:0> a = "1 2 3 4 5".split.map { |s| s.to_i };a[3]=> 4

PHP:

Each string is an array of it’s own ofcourse in php

$a = "1 2 3 4";list($b[],$b[],$b[],$b[]) = split(" ",$a); echo $b[3];

Ruby:

irb(main):009:0> a = ('a'...'z');a.each { |char| print char + "\s" }a b c d e f g h i j k l m n o p q r s t u v w x y => "a"..."z"

PHP:

for ($i=a;$<=z;$i+1); echo $i; done

Ruby:

3.5.round=> 4irb(main):002:0> 3.4.round=> 3a=["foo","bar"]; 4.times{print "#{a.reverse![0]}\s"}=> bar foo bar foo

PHP:

$a=array('foo', 'bar'); while ($i++<4){ echo $a[0]; $a=array_reverse($a);}$a=array('foo','bar');while($i++<4){echo"$a[0] ";$a=array_reverse($a);}

гнобят!

PHP, Программирование

08.09.2006 23:13 5 лет, 8 месяцев назад

тут гнобят php программистов. Ну язык, конечно ломает мозг, но чтобы так=) http://community.livejournal.com/ru_pohape/

про енкодинк файлов.

PHP, Администрирование

07.09.2006 19:24 5 лет, 8 месяцев назад

Нашёл всё последнее. php – zend Encoder – последний навалом по сети. ionCube – навалом, но если только под win или lin., а то родные лоадеры поднимают крик. Bcompiler – вообще полная хуйня пока, Eaccelerator больше не хочет енкодить до релиза, им совместимость с php5 больше важна. Я даже пытался похачить, но сломался…Я такое не умею. Надеюсь, что zend мне простит, мою бздю, тем более не зная, что за сервер. А я потом куплю, честное слово. Даю честное слово.

Группы взаимопомощи пациентов