Ожившая еда
жуть
Tools
Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.
2008-03-28
2008-03-21
2008-03-17
Слабое место сайтов с авторизацией по кукам
Есть такой вид атаки на веб-приложение cross-site request forgery.
Представьте, зашли вы на сервис почтовый, прошли аутентификацию (ввели логин, пароль) и сервис выдал куку а у себя открыл сессию, связанную с этой кукой. Потом вы пошли читать блоги и некий Зловред в свой блог (который вы читаете) вкрутил невидимую картинку с источником http://mail.service/change.pass?newpass=123
Ваш браузер отправит этот запрос на почтовый сервис и тот, проверив, что запрос авторизован (у вас ведь есть кука и сессия еще не закрылась) поменяет пароль. После чего Зловред завладеет вашим почтовым ящиком.
Подробнее и серьезнее можно прочесть в википедии.
Что делать, как жить? Для себя я выбрал вариант решения подобных проблем с "токеном операции". По простому - в форму из которой можно выполнить "опасное" действие каждый раз зашивается случайное число - токен (например GUID). При отправке запроса сервер проверяет этот токен с тем, что он сохранил у себя при формировании формы и принимает решение - запрос авторизован или нет. Просто, элегантно, относительно надежно.
Ну и , конечно, примите за правило - поработали с сервисом - сделайте "выход".
Posted by Valentin at 01:21 0 comments
Labels: CGI, development, hack, security, web-develop
2008-03-16
Еще один критерий оценки госмашины
Можно по разному оценивать перспективность того или иного правительства, правящей партии и их программ развития страны. Вот вам один из критериев - ответственность чиновников и госмашины в целом перед своими работодателями (почти полная копия поста):
.Детский такой вопрос - сколько вы платите налогов? Большинство полагает, что платят 13% от своего дохода - и то достаточно безболезненно, поскольку НДФЛ автоматически вычитается работодателем (а в переговорах оговаривается "чистая" зарплата). Реально же для экономики их труд стоит "грязную" зарплату плюс единый социальный налог (26%, с уменьшением при росте доходов выше определенного порога - грубо говоря, при зарплате в 3-4 тыс.долл. налог уже ближе к 10%). Плюс к этому по существующему налоговому законодательству зарплата фактически облагается НДС*.
Плюс к этому, налог на добавленную стоимость фактически полностью выплачивается конечным покупателем - это около 18%. Плюс к этому, на многие товары платятся акцизы - и это делает тоже конечный покупатель.
Фактически, налоговая нагрузка на конечного потребителя может составлять более половины его дохода. Вот иллюстрация :
Расчет достаточно прост.
Итак - средняя начисленная заработная плата в январе 2008 составила 15000 руб.
НДФЛ - 13% - 1950 руб.
На руки - 13050.
ЕСН - 26% - 3900 руб.
НДС - 18% - 2700 руб.
Итого: без уплаты налогов предприятием гражданин получил бы на руки не 13 050 руб. а 15000+3900+2700=21600.
Таким образом с реальной зарплаты в 21600 гражданин заплатил государству напрямую 8 550 руб, получив на руки 60% реальной зарплаты и отдав государству 40%.
Дальше гражданин истратил 80% от 13050 руб. на облагаемые НДС товары и услуги.
Т.е. 0,8*13050=10400
Доля НДС В 10400=1560 руб.
Таким образом на круг гражданин заплатил государству 10110 руб. из реальной зарплаты в 21 600 руб.
Не учтены - акцизы и таможенные пошлины в случае приобретения импортного товара.
Хитрость этой налоговой системы в том, что большинство и не подозревает о колоссальных собственных расходах на поддержание государства. "Я плачу налоги" - не пустая фраза, но она стала пустой ровно по той причине, что ответственность за выплату налогов возложили на организации.
А теперь представьте, что было бы, если бы система была более персонифицирована. Если бы, скажем, работник получал не 20 тыс.руб. "на руки", а около 30 тыс. "грязных", из которых он раз в квартал сам бы нес мытарям треть своих кровных заработанных. Скажем, заработал за квартал 90 тыс., и 30 из них (одну зарплату) сам бы отнес. И если бы в магазинах стояла специальная касса, куда выплачивалась бы сумма НДС - то есть, продавец декларирует стоимость вещи в 3 тыс., и еще 540 руб. несешь в эту кассу и отдаешь мытарю же. Грубо говоря, из своих оставшихся 60 тыс. еще почти 10 относишь в эту "дополнительную кассу".
Вопрос - сколько времени пройдет, прежде чем фраза "я плачу налоги" станет серьезным аргументом в разговоре с государственными чиновниками? И сколько времени пройдет, прежде чем среднестатистические граждане массово начнут ставить вопрос о качестве государственных услуг и размере государственного аппарата?
Рискну предположить, что вопрос построения демократического государства - это вопрос налоговой ответственности. Пока государство стыдливым фиговым листком прикрывает реальное положение дел о налоговой нагрузке, перекладывая всю ответственность на организации, граждане остаются "быдлом", от которого ничего не зависит. Как только граждане сами начинают платить налоги - хотя бы все налоги, связанные с зарплатой, - у них тут же возникает потребность получать за свои деньги качественный сервис..
.
newsland.ru
и как вы думаете, по этому критерию в нашей стране темно как в жопе у кого?
Posted by Valentin at 01:44 0 comments
2008-03-12
3D игры в Ёкселе?
Все гениальное просто. Сколько времени все знают, что ёксель обладает продвинутыми математическими способностями? А возможностью управлять отдельными ячейками? А наличием графического инструментария? И кто подумал о том, что ячейка - тот же пиксель, а математика трехмерки не такая уж и сложная и пр...
Вот, подумал Peter Rakos. И вот что он придумал:
Cutting-edge computer games use different graphics subsystems -- so-called 3D graphics engines. Source (used in Half Life 2), Unreal Engine (Unreal Tournament), idTech 4 (Doom 3), CryENGINE2 (Crysis) or Clever's Paradox engine are well-known among the players and the game industry experts.
It's time to learn a new 3D game engine name: Microsoft Excel.
It is understood that Excel is an all-round office tool, but probably it is unknown that it has a bunch of features that makes Excel a high-class 3D graphics engine.
In this article I will demonstrate Excel's arithmetical facilities, the embedded rendering subsystems (there are two of them!) and the revolutionary approach which might just cause a paradigm shift. I hope you will discover that Excel effectively and efficiently incorporates practicality, tons of features, the multi-platform portability and the high performance with the unique and futuristic 3D engine features.
The chapters even have demo programs and movies created with the Excel 3D engine.
Warning: Only for determined experts!
www.gamasutra.com
Posted by Valentin at 02:10 0 comments
Labels: 3D, Fun, hack, Microsoft Office, programming
2008-03-11
Коды ответа HTTP
Это должен знать каждый :)
Диаграмма статусных кодов для HTTP ответов.
thoughtpad.net
Posted by Valentin at 01:44 0 comments
Labels: CGI, development, HTTP. Apache
2008-03-04
Пистолетики
Совершенно замечательно написано (Беркем аль Атоми). Даю маленькую цитату:
Инструмент для поражения цели нужен только тогда, когда есть цель. Пока вы этого не признаете, вы будете оставаться шуганной обиженкой, плачущей про вожделенный "короткоствол".
Хотя цели у вас есть. И это нихуя не пистолетные цели, не придуманные под койкой "гопники", на ваши розовые попки уже положили глаз вполне реальные пацаны, которые даже не улыбнутся, увидев пистолеты в дрожащих ручонках. Уверен, что вы понимаете и это. Но вы будете отворачиваться и мужественно пытаться насвистывать до того самого момента, пока вас не перекинут через шконку с форточкой в трикешнике. Вот когда вы услышите, как сзади набирают соплей, чтоб не ободраться о ваше дупло, тогда вам срочно понадобятся пушки с пулеметами, но реально будет нужен уже только солидол и чтоб побыстрее все кончилось.
Что-то поменять может... ну хуй с ней с пушкой, все равно мало у кого бабла на пушку хватит, а вот пулемет - да, пулемет запросто может поставить все на свои места. Готовность стрелять плюс пулемет - это серьезно, пулемет не проигнорируешь, пулемет не придешь и не заберешь. Тебя с пулеметом будут бояться больше, чем всех "террористов" и вероятных противников вместе взятых. Поэтому те хмыри, которые собирают с нас бабло и рассовывают его по оффшорам, будут вынуждены кормить быков, охраняющий наши жопы и наше общее корыто. И "вынуждены" здесь главное слово.
Пойми простую вещь: никто пальцем не шевельнет, если не вынужден или не выгодно. Выгоды с нас никакой, им дешевле, чтоб нас вообще не было. Значит, остается вынуждать.
Тем временем для таких баранов, как любители пистолетиков, хмыри рассказывают майси, что, мол, вынуждайте, пожалуйста: ходите на выборы и всякие демонстрации. Многие ведутся, хотя долбоебство такого поведения очевидно. Вынудить такого жирного и наглого хмыря делать то, для чего его завели, можно только намушником, засунутым в хавальник. И пестики ему не страшны, они только вам кажутся чем-то вроде оружия, хмыри боятся только намушника. Для того, чтобы заставить себя уважать ("уважать" - значит "бояться"; другого перевода этого слова не существует) нужно оружие, а не "короткоствол"
zhurnal.lib.ru
Жесть. Все к Кочергину.
Posted by Valentin at 02:17 0 comments
2008-03-03
Криптованный дисковый раздел в линукс
Времена нынче странные, кино посмотрел "не оттуда" - заработал срок. Очевидно, кино надо прятать. А прятать лучше методом шифрования.
Я научился создавать и использовать шифрованные дисковые разделы. Теперь и вас научу. Причем дисковый раздел мы создадим из файла на другом дисковом разделе (чтоб смешнее было).
Делай раз:
установим пакет apt-get install cryptsetup
делай два:
загрузим ядреные модули modprobe dm-crypt; modprobe aes
делай три:
создадим пустой файл touch /tmp/t
делай 4
запишем в файл 40 мегабайт мусора shred -n 1 -s 40M /tmp/t
делай 5
создадим блочное устройство losetup /dev/loop0 /tmp/t
делай 6
создадим дисковый раздел cryptsetup -c aes -y create topsec /dev/loop0
делай 7
форматнем mkfs -t ext2 /dev/mapper/topsec
делай 8
замонтируем том в каталог корневой файловой системы mount /dev/mapper/topsec /mnt/mydir
Всё. Можно пользоваться. Все что попадет в каталог /mnt/mydir будет на лету закриптовано по алгоритму AES.
Размонтировать тайничок надо так:
umount /dev/mapper/topsec;
cryptsetup remove topsec;
losetup -d /dev/loop0
Обратно замонтировать надо так:
losetup /dev/loop0 /tmp/t;
cryptsetup create topsec /dev/loop0;
mount /dev/mapper/topsec /mnt/mydir
Posted by Valentin at 00:37 0 comments