Pull to refresh
0
0
Ринат Янбухтин @R1nat

User

Send message

Школьники на каникулах

Reading time2 min
Views1.2K
Наблюдали в последнюю неделю флуд по http на один из сайтов камрада, который живет со мной на VPS. Где-то на пару дней неизвестные прекратили свои поползновения. Но буквально вчера начали долбить другой сайт с новой силой. Пришлось покрутить nginx в стороне кэширования всего (ранее кэшировали прозрачно) + apache2 (поубавить аппетиты). Собственно, через несколько часов мы уже и думать забыли, что кто-то на нас нападает. Из кэшей все отдается быстро и непринужденно, apache отдыхает.

И вот буквально с утра камрад, сайт которого и подвергся «атаке», пересылает письмо школьника… (интрига под хабракатом)
Читать дальше →
Total votes 65: ↑58 and ↓7+51
Comments45

Применение нейросетей в распознавании изображений

Reading time10 min
Views242K
Про нейронные сети, как один из инструментов решения трудноформализуемых задач уже было сказано достаточно много. И здесь, на хабре, было показано, как эти сети применять для распознавания изображений, применительно к задаче взлома капчи. Однако, типов нейросетей существует довольно много. И так ли хороша классическая полносвязная нейронная сеть (ПНС) для задачи распознавания (классификации) изображений?
Читать дальше →
Total votes 134: ↑131 and ↓3+128
Comments73

GET запросы

Reading time1 min
Views4.1K
При создании разнообразных движков для сайтов, разработчики часто упускают такой не существенный момент, он вроде бы и маленький, но все же баг.

На примере Яндекса, эта ссылка
passport.yandex.ru/passport?mode=logout&retpath=http%3A%2F%2Fwww.yandex.ru%2F
Приводит к выходу пользователя из почты. Вряд ли кто то будет нажимать на нее, но а что если это будет не ссылка, а например картинка с таким адресом. Браузер сделает запрос, картинки не найдет, но пользователя выкинет из почты.

Таких примеров великое множество мейл.ру, вконтакте.ру, одноклассники.ру, разнообразные системы: форумов, портальных систем, онлайн магазинов.
На многих сайтах стоит проверка по referer'у пользователя, но если он не предается, то обычно система не реагирует и делает положенные действия.
Выход пользователя из системы это как один из примеров, если это онлайн магазин и покупка товара проходит через GET запрос или обрабатывается через $_REQUEST…
Фактически злоумышленник может воспользоваться этим, например с помощью форума и заставить пользователя, сделать какое либо действие на стороннем сайте.

Последнее время мне очень интересна эта проблема, и способы ее решения.
Total votes 17: ↑15 and ↓2+13
Comments52

Динамическое ограничение доступа посредством web авторизации

Reading time3 min
Views1K
Зачастую возникает необходимость обеспечить доступом какой-то сегмент гостевой пользовательской сети ограниченный по времени.

Расскажу немного о задаче.
У нас есть wifi сеть или LAN в интернет кафе где нам необходимо обеспечивать повременной доступ к интернет. Желательно чтобы управление системой было — поставил и забыл, дать оператору генерилку паролей с принтером и вручить кассовый аппаратдля приёма денег.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments1

Фильтрация входных данных для PHP

Reading time5 min
Views1.6K
Хочу поделиться своими мыслями по поводу организации фильтрации входных данных (php).

Первая мысль — это разработка классов-обёрток String, Integer, Float, Array для стандартных типов. Данные классы предназначены для более удобной работы со строками, массивами и т.п., а так же для применения их в фильтрах входных данных.
Читать дальше →
Total votes 10: ↑5 and ↓50
Comments10

C++.Начало.

Reading time2 min
Views4.6K
Многим начинающим программистам очень сложно найти подходящую литературу где было бы подробно и простым русским языком написано как программировать на языке С++.В книжных магазинах и в сети очень много литературы посвященной для так называемых «продвинутых» пользователей.Я сам столкнулся с этой проблемой и хочу поделиться своими пока маленьким, но с каждым днем растущими знаниями в этой области программирования.
Итак начнем!
И так что же такое этот язык С++? Язык программирования С++ — один из самых популярных(если не самый популярный) язык программирования.Именно С++ позволяет написать программу с использованием объектно-ориентированных подходов и при этом достаточно «быструю». Как наверное вы уже поняли С++ был создан на основе языка С(а он, надо сказать был создан под влиянием языка Simula датированного 1967 годом).С самого начала подчеркивалось, то, что С++ — развитие языка С.Однако основное отличие С++, когда он только появлялся, была явная поддержка объектно-ориентированного подхода к программированию.
Давайте перичислем некоторые особенности языка С++:
— С++ обеспечивает полный набор операторов структурного программирования
— С++ предлагает необычно большой набор операций
— Во многих случаях программы, написанные на С++, сравнимы по скорости с программами, написанными на языке ассемблера
— Многие операции С++ соответствуют машинным командам и поэтому допускают прямую трансляцию в машинный код
— Разнообразие операций позволяет выбирать их различные наборы для минимализации результирующего кода
— С++ поддерживает указатели переменных и функции
Можно еще долго писать о данном языке, но давайте лучше разберем его на конкретном примере.
Давайте не будем писать пресловутую программу «Hello World», разберем что нибудь по сложнее.
Составим программу, которая будет вычислять площадь прямоугольника — вводит два вещественных числа с клавиатуры, получает их произведение и выводит его на экран.
// Программа вычисляющая площадь прямоугольника
#include <iostream.h>
float x,y,s;
int main ()
{ cin >>x>>y;
s=x*y;
cout <<s;
return 0;
}

Давайте разберем каждую строчку подробно:
1.Текст, ограниченный скобками из символов // служит комменитарием для пояснения программы.Он не влияет на выполнение программы, но значительно повышает ее наглядность.Текст, начатый с двух косых черт продолжается только до конца строки.
2.#include <iostream.h> — команда препроцессора называемая директивой, вставляет в программу текст из файла iostream.h, содержащего прототип стандартных функций потокового входа/вывода данных.
3. Строки вида
int main()
{
… /*Тело функции main*/
}
составляют определение главной функции программы.Программа может состоять из нескольких функций.Но одна из них всегда должна быть функция main, с которой начинается выполнение программы.
4.cin,cout операторы потокового входа и выхода соответственно.Знаки >> и << играют роль «стрелок», показывающих направление передачи данных.
5.Оператор return 0 предписывает завершить выполнение функции считать ее значением число 0 и возратиться к продолжению программы запустившей эту функцию.
И так, мы с вами разобрали простенькую программу на языке С++.Это только первый шажок в изучении этого языка.
Продолжение статьи будет написано в ближайшее время.
Total votes 56: ↑32 and ↓24+8
Comments47

Покупаем на E-Bay – Дешево и Сердито. Часть 1.

Reading time2 min
Views711
image

Я живу в США, и посему мне довольно часто приходится отвечать на вопросы друзей и знакомых из-за океана о локальных ценах на специфические товары.

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

Самым эффективным в этом я считаю E-Bay

Читать дальше...
Total votes 53: ↑49 and ↓4+45
Comments27

Все вебморды в одной. virtualhost и proxy_pass в nginx для дома.

Reading time4 min
Views4.2K
В этой статье я хотел бы поделиться опытом, как организовать доступ к Web-интерфейсам различных домашних качалок через один единственный проброшеный наружу порт. Делать будем под винду (на Win32 порту nginx), но точно также можно сделать под unix.

Где это может понадобиться? Очень простой пример, состоящий из двух условий:
— У меня дома стоит СТРИМ, который блокирует входящий 80 порт
— У меня на работе открыты наружу только порты 443, 80, 5190.
— Как итог: я могу достучаться домой только к 2 сервисам, один из которых у меня SSH, и один остается свободным. Задача сводится к тому, чтобы завернуть все WEB-морды в один сайт, ибо замучался я с SSH-туннелингом. Универсального интерфейса, конечно же, не получится, так что их надо логически разделить.
Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments18

Логика английских времен

Reading time6 min
Views72K
Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
Читать дальше →
Total votes 196: ↑173 and ↓23+150
Comments202

Почему я купил себе iPhone 1/2G, а не iPhone 3G

Reading time2 min
Views48K
Про недостатки iPhone`ов, как и про достоинства, написано очень много. Все это есть в сети, повторятся не буду. Я же хочу рассказать о недостатках именно iPhone 3G по сравнению с iPhone 1/2G, с которыми столкнулся когда хотел покупать данный телефон.
Читать дальше →
Total votes 174: ↑121 and ↓53+68
Comments132

Пользовательские виртуальные домены

Reading time1 min
Views2.2K
Если посмотреть на URL-адрес профиля пользователя habrahabr.ru, то можно увидеть, что доменом третьего уровня является его логин.
Этот подход носит название «пользовательские виртуальные домены».

Про теоретическую реализацию смотрим ниже
Total votes 31: ↑19 and ↓12+7
Comments13

Все «секреты» Windows 7

Reading time10 min
Views391K
По многочисленным просьбам — перевод статьи «The Bumper List of Windows 7 Secrets».

Здесь пропущено вступление о том как здорово, что Windows 7 вышла в свет, которое все равно все пропустят и будут читать сами «секреты».

1. Управление окнами


Вы, наверное, уже знаете, что Windows 7 делает работу с окнами во многом проще. Окно можно «прикрепить» к левой или правой половине экрана просто придвинув к соответствующему краю, а так же окно можно разворачивать/восcтанавливать по вертикали двойным щелчком по нижней границе окна. Но вот чего вы, наверное, не знаете, так это того, что все эти действия доступны через горячие клавиши.
  • Win+Влево и Win+Вправо — прикрепить окно
  • Win+Вверх и Win+Вниз — разворачивает и восстанавливает/сворачивает окно
  • Win+Shift+Вверх и Win+Shift+Вниз — разворачивает и восстанавливает окно по вертикали
Но это далеко не всё
Total votes 163: ↑137 and ↓26+111
Comments255

Про коммерческие лицензии

Reading time5 min
Views12K
В последнее время на Хабре возникает много споров про ПО, его перепродажу и лицензирование. Дабы не быть голословным: тут, тут и еще было несколько топиков, которые и авторов которых нещадно заминусовали.
Моей профессиональной обязанностью является в т.ч. и продажа ПО и, соответственно, консультирование клиентов по вопросам лицензирования. Я этим занимаюсь не первый год, регулярно сдаю требуемые тесты правообладателей (сиречь производителей ПО), регулярно участвую в разборках против наездов BSA-групп. Потому попытаюсь доступно рассказать, что и как творится на ПО рынке.
Ничего из нижесказанного не претендует на юридическую, коммерческую, техническую и какую-либо другую точность. Весь топик исключительно для облегчения понимания этих вопросов среди хаброобщественности.

перенесено в Dura Lex по подсказке Alik_Kirillovich
Под катом много букофф.
Total votes 46: ↑39 and ↓7+32
Comments32

Перенос сайта на новый домен

Reading time3 min
Views1.9K
Склейка домена обычно происходит при необходимости переехать с одного домена на другой, например, при покупке нового более красивого адреса или попадания в бан одной из поисковых систем старого. Иногда же клеят в корыстных целях чтобы получить чужой тИЦ/PR, но сейчас о первом случае.

Хотелось бы сразу оговориться, что склейка домена занятие не трудоёмкое само по себе, но довольно нервотрепательное и долгое. И, на мой взгляд, без особой надобности её не стоит делать, ибо будут потери посещаемости.

Самым же неправильным методом переноса сайта на новый домен с минимальной потерей посетителей, на мой взгляд, будет следующий:
Читать дальше →
Total votes 62: ↑52 and ↓10+42
Comments16

Рождение идеи. Форсируем события.

Reading time4 min
Views814
Эта статья является продолжением статьи Рождение идеи. Как придумать велосипед.

Представим ситуацию, когда нам кровь-из-носа надо придумать свежую креативную идею. Это периодически случается. Например, у нас есть свободная неделя и мы решили потратить время с пользой. Представили? Давайте начнем.

В основу опять будут взяты абстрактные предметы, которые мы выберем абсолютно случайно. Для чистоты эксперимента, это будут самые банальные вещи, которые есть практически в каждом доме: ластик, карандаш и лист бумаги. Подчеркну, что данный способ применим не только к материальным вещам. Таким же образом можно придумать и нечто виртуальное. Поехали.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments21

Создаём свой персональный OpenID

Reading time2 min
Views2.3K
В последнее время стало популярным использование OpenID. Это удобно, быстро и по-современному.
OpenID — это открытая децентрализованная система единого входа, которая позволяет использовать один логин и пароль на большом количестве сайтов. На сайтах, поддерживающих OpenID, пользователям не приходится регистрироваться и помнить данные для каждого сайта. Вместо этого им достаточно быть зарегистрированными на сайте «провайдера идентификации» OpenID (предоставляющего идентификатор). Так как технология OpenID децентрализованная, то любой сайт может использовать программное обеспечение OpenID в качестве средства входа; OpenID решает проблему не полагаясь на централизованный сайт для подтверждения подлинности пользователя. (Wikipedia)

Лично для меня некоторое время создавало трудность запомнить строку ainu.myopenid.com. Со временем я, конечно, её запомнил, но теперь везде вместо ainu.myopenid.com пишу ramainen.ru (моя страничка, её то я запомнил), и сервисы меня прекрасно понимают. Конечно, я не стал OpenID провайдером, но вспоминание и ввод моего OpenID стал гораздо проще.
как такое сделать?
Total votes 61: ↑44 and ↓17+27
Comments51

В двух словах о самом разном

Reading time3 min
Views647
Итак, напишу о том, как пофиксить дрожание в IE при эмуляции position:absolute; (без фоновой картинки), устроить склонение слов, решить проблемы с вопросиками в Mysql и про остальные неважные, но иногда полезные хитрости.
Если Вы матёрый веб-технолог, можете не читать: ничего нового не найдёте.

Читать дальше →
Total votes 106: ↑87 and ↓19+68
Comments53

Сервер дома — AMD, Debian x64, Bind9, Apache 2, PHP5, MySQL5, Trac, Subversion и море удовольствия

Reading time7 min
Views8.7K
Шило в известном месте всё никак не даёт мне покоя.
И решил я поэкспериментировать с установкой сервера дома.

Итак, дано:

1. Домашний интернет с внешним ip на роутере, канал туда/обратно — 8 мбит, провайдер — QWERTY *
2. Бюджет не больше 10 тысяч рублей — чем меньше, тем лучше. **
3. Жгучее желание экспериментов и чего-нибудь эдакого ***

* К сожалению, мой дом не подключает Корбина, у которой более широкие каналы. Приходится довольствоваться тем, что есть
** Получилось путём более-менее реального подсчёта стоимости комплектующих на среднестатический компьютер
*** Для тех, кто хмыкнет и скажет — «эка невидаль, я такое регулярно делаю» — я не так часто что-то настраиваю, больше пишу под уже настроенное, и для меня это чистой воды развлечение — что-то сделать своими руками=)

Ну, все процедуры тут, под катом.

Сразу хочу сказать, что у меня это работает — так, как есть. Дополнительно с бубном я не плясал — но тут вытяжки из моих гуглений и мануалокурений.

Вероятно, что-то можно настроить более гибко или качественно, и я крайне буду рад советам или решениям=)


Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments66
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity