Pull to refresh
18
0
Рустам @mester

Пользователь

Send message
UFO landed and left these words here
Вся чистая правда. Я занимался расследованием одного такого нападения. Возможно это была другая группа — но методы совершенно те же. Банк был довольно маленький, прямо карманный, каких много в России, поэтому они сразу увидели что у них ночью были транзакции корпоративных клиентов которые по ночам не работают. Пошло расследование и было обнаружено практически все что описывается в статье.
Внедрение происходит письмом «от центробанка» одному из руководителей, чьи емейлы доступны в открытом доступе. Какой-нибудь зам. директора публичный. Приходит письмо типа «новые регулирования валютного контроля от ЦБ» с вложенным документов ворда, в котором 0-day дроппер скачивающий утилиту удаленного контроля. С этой точки входа начинается распространение внутри организации — сначала разбрасывается прямо с этого компа по сети софт под логином этого пользователя, софт который ищет в памяти пароли админов (если вы не в курсе в винде есть такая брешь — если админ логинился на комп до перезагрузки в оперативной памяти можно найти его логин). По получению логинов админа внедряются утилиты удаленного управления на компы сливающие отчеты на сервера управления по 80-му порту по http. Не подкопаешся — обычная веб-активность.
Сливаются скриншоты, пароли, все-все-все.
Если вы думаете что нужно заражать какие-то сложные банковские системы под AIX — это все блажь. Все эти системы имеют терминалы для работы с ними под винду, или веб интерфейсы — достаточно отснифать пароль с правами проводить транзакции и дело в шляпе. Даже если одна система авторизует по ключу — всегда есть другая система в которой просто пароль. Банк это дикая смесь разного софта. В группировке явно трудятся люди работавшие раньше в банках, потому что зходят на совершенно экзотический софт получив пароль и сливают деньги. Заходят ночью с vps'ок из разных стран на удаленное управление и прямо с компьютеров банка из клиентский утилит все льют.
Приходят действительно через месяц-два после заражения, видно что люди работают по площадям и сами иногда путаются что где — могут несколько раз пытаться войти под логином которого в данной организации вообще нет, какой-нибудь IvanovSG, когда в этой оргнанизации все логины вида s.g.ivanov.
Автора переполняют эмоции, хотя если разобраться, то окажется, что `Object.defineProperty` уже давно удовлетваряет всем желаниям. Единственное не возможно следить за добавлением/удалением свойств, но это крайне редкая необходимость по двум простым причинам:
1* Архитектурная — модели и классы должны быть полноценны и однозначны
2* Производительная
— добавляя-удаляя свойства обьекта, V8 как минимум, пересоздает скрытые классы для обьекта
— создается небольшой event flood, так как нужно фильтровать `changes`, что бы слушать только например `foo property update`
В наших проэктах давно уже завели себе Object.[add/remove]Observer Object.[lock/unlock]Observers которые добавляют ака proxy функции для сеттеров и ака breadcrumbs proxies для вложенных обьектов, как с примера для полимера.
var obj = { foo: { bar: 'baz' } };
Object.addObserver(obj, 'foo.bar', console.log.bind(console));
obj.foo.baz = 'qux';
//> qux
obj.foo = { bar: 'quxx' }
//> quxx


И ещё, `getNotifier` отлично заменяется `EventEmitter`ом. А что бы следить за массивом, достаточно обернуть его мутаторы, сново же, своим proxy методом.

Я никаким образом не хочу сказать, что O.o плох — напротив, и статья отличная, только много из этих вещей можно и нужно использовать уже сейчас! Ну, кто может себе позволить IE9+;
Передайте брату… я сам не смотрел еще, чеcтно, но люблю форум на CGpersia
Ну тогда я бы сделал это так:

Вынес создание и настройки звезды в отдельный класс, дал бы ей различные скорость, цвет и время жизни, со временем определённые звёзды удалял бы:

atom.declare( 'Star', App.Element, {
    
    progress: 0,
    opacity: 1,
    
    configure: function () {
        var screenRectangle = this.layer.ctx.rectangle;
        
        this.animate = new atom.Animatable(this).animate;
        this.from  = screenRectangle.getRandomPoint();
        this.shape = new Polygon(this.from.clone(), this.from.clone(), this.from.clone());
        this.angle = -this.from.angleTo(screenRectangle.center);
        this.sin   = this.angle.sin();
        this.cos   = this.angle.cos();
        
        this.progressSpeed = Math.random() + 0.5;
        this.color = new atom.Color(128, 128, Number.random(128, 192)).toString();
        
        setTimeout(this.fadeOut.bind(this), Number.random(1000, 8000));
    },
    
    fadeOut: function () {
        this.animate({
            time: 2000,
            props: { opacity: 0 },
            onComplete: this.destroy
        });
    },
    
    onUpdate: function () {
        var sin = this.sin, cos = this.cos, p = this.shape.points;
        
        this.progress += this.progressSpeed;
        
        p[1].x = p[0].x + this.progress * cos;
        p[1].y = p[0].y - this.progress * sin;
        p[2].x = p[1].x + 2 * sin;
        p[2].y = p[1].y + 2 * cos;
        
        this.redraw();
    },
    
    renderTo: function (ctx) {
        ctx.save();
        if (this.opacity < 1) ctx.set({ globalAlpha: this.opacity });
        ctx.fill( this.shape, this.color );
        ctx.restore();
    }
    
});


Изначально звёзд создать поменьше, а потом добавлять в каджом кадре
new function () {
    var helper = new App.Light(
        new Size(document.width || 800, document.height || 800),
        { intersection: 'full', invoke: true }
    );
    
    for(i = 0; i < 200; i++) new Star(helper.layer);
    
    atom.frame.add(function () {
        new Star(helper.layer);
    });
    
};


Код стал лаконичнее и читабельнее. В браузере выглядит красиво и работает быстро. Особенно приятно смотрится fullScreen


Добавите в топик обновлённый код?
Не против, если я добавлю этот пример в репозиторий примеров на ГитХабе?
Я примерно такого же эффекта добивался вот в этой визуализации (только визуализация без версии).
image
Тут только не звезды а денежные займы от одной стране к другой. Библиотека d3.js для расчета физики.
Батавские слезки официально называются капли принца Руперта. Очень забавная штука, но крайне опасная, у нас народ выковыривал осколки из рук потом.
А зачем вам 350 обрабочиков событий?

$(document.body).on('click', '.testDiv', function(){

$(this).toggleClass('isActiveState');

});

Сделает свое дело одним обработчиком, и не нужно ничего искать, никаких прохождений по DOM, время выполнения сиильно сократится. Если собрались супер оптимизировать, то это, как мне кажется, нужно учитывать? Хотелось бы увидеть тесты на jsperf. Спасибо за поиск.
А вот еще один плагин — jquery.transition.js:
Upgrade jQuery's .animate() method to use CSS3 Transitions in modern browsers.
А я поставил себе RSS Icon и все, даже петиций не надо :)
1. Скачал крякнутый Acunetix или другой сканер уязвимостей
2. Просканировал сайт
3. Посмотрел отчёт о найденных уязвимостях
4. Прочитал статьи о том, как эксплуатировать найденый тип уязвимостей
5. Скачал софт, который автоматизирует процесс эксплуатации

6. We are anonymous. We are legion. We do not forgive. We do not forget.
UFO landed and left these words here
О… тому есть много новых способов) Устройство не различает на бланке цветов и водяных знаков, проверяет только наличие необходимых аттрибутов (печать ИК) и их геометрию на монохромном скане бюллетеня. Поэтому, если иметь скан бюллетеня в день выборов, и каким-то образом (отвлекая «часового» у урны, десяток наблюдателей и членов ИК) попытаться скормить КОИБ-у ч/б ксерокопию вместо реального бюллетеня на гербовой бумаге — скушает как миленький)

Но после голосования, при распечатке итогов, цифры конечно же не сойдутся, придётся вскрывать урну и пересчитывать вручную… А тут и вскроется, что КОИБ засчитывает голоса во многих таких бюллетенях, которые человек отбраковал бы — посиделки комиссии обещают быть долгими…

Пример «Человек и кошка»: человек ставит в бюллетене галку в квадратике напротив КПРФ, и ставит галку рядом с квадратиком СР,… и рисует страшную персидскую кошку, справляющую нужду на 6-й пункт — КОИБ скушает бюллетень без вопросов, голос уйдёт к КПРФ. Но стоит только вскрыть урну для пересчёта — начнётся битва за голос)
Каждый программист на javascript должен написать свою реализацию классов. ©

Dojo — dojotoolkit.org/reference-guide/dojo/declare.html#dojo-declare
Sencha (ExtJS) — www.rogerwilco.ru/2011/04/sencha-extjs.html
qooxdoo — qooxdoo.org/documentation/0.7/oo_feature_summary
MooTools — www.phpeveryday.com/articles/MooTools-Basic-Creating-Classes-MooTools-P919.html
Prototype — www.prototypejs.org/learn/class-inheritance
AtomJS — github.com/theshock/atomjs/blob/master/Docs/Class/Class.md
JSClass — jsclass.jcoglan.com/classes.html
code.google.com/p/jsclassextend/
github.com/jcoglan/js.class
Cobra — justin.harmonize.fm/index.php/2009/01/cobra-a-little-javascript-class-library/
github.com/JustinTulloss/cobra
The $class Library- www.uselesspickles.com/class_library/
Classy — classy.pocoo.org/
YUI 3 — www.yuiblog.com/blog/2010/01/06/inheritance-patterns-in-yui-3/
Coffee-Script — jashkenas.github.com/coffee-script/#classes
JavascriptClasses — code.google.com/p/javascript-classes/
AJS — amix.dk/blog/post/19038
jsFace — github.com/tannhu/jsface
JsOOP — jsoop.codeplex.com/
joot — code.google.com/p/joot/wiki/API
oopsjs — code.google.com/p/oopsjs/
Objs — github.com/tekool/objs/wiki
oorja — maxpert.github.com/oorja/
objx — code.google.com/p/objx/wiki/OClass
jsclassextend — code.google.com/p/jsclassextend/
prolificjs — code.google.com/p/prolificjs/wiki/OOP
objectize — code.google.com/p/objectize/

code.google.com/p/core-framework/wiki/Inheritance
code.google.com/p/sfjsoo/
code.google.com/p/jslproject/
code.google.com/p/magic-classes/wiki/MagicClassesOverview

github.com/ded/klass
github.com/jiem/my-class
github.com/kilhage/class.js
github.com/Jakobo/Sslac
github.com/BonsaiDen/neko.js
github.com/finscn/GT-Class
github.com/deadlyicon/klass.js
github.com/neuromantic/CodeJS
github.com/cj/js-oo
github.com/darthapo/klass.js
github.com/nemisj/zet.js
github.com/k33g/species
github.com/benekastah/JS-Class
github.com/tobeytailor/def.js
github.com/rstrobl/squeakyJS
github.com/shinyplasticbag/MojoClass
github.com/firejune/class
github.com/gcoguiec/jquery-class
github.com/daffl/JS.Class
github.com/pavelz/class.js
github.com/zerodogg/jqsimple-class
github.com/bnoguchi/class-js
github.com/arian/Klass
github.com/kuwabarahiroshi/joo
github.com/iamleppert/SimpleClass
github.com/aenoa/Noode.js
github.com/stomlinson/SuperClass
github.com/jzimmek/klazz
github.com/kbjr/class.js
github.com/jhnns/node.class
github.com/borysf/declare/blob/master/declare.js
github.com/ShadowCloud/BF-Class
github.com/pic-o/jsClass
github.com/rosamez/jquery.klass
github.com/yuki-kimoto/javascript-Class_Simple
github.com/yaksnrainbows/jarb
github.com/thirashima/UnderClass
github.com/arahaya/package.js
github.com/arieh/Class.def
github.com/bogdan-dumitru/jsClass
github.com/pomke/pomke.js
github.com/sgolasch/jClassify
github.com/kbjr/Classy
github.com/cthackers/jClass
github.com/davidjbeveridge/Clasico
github.com/edave64/protojazz
github.com/mrac/solid.js
github.com/benekastah/Classy
github.com/damianmr/JSMiniClass
github.com/benekastah/classesWithCash
github.com/dialog/Resig-Class
github.com/mpodriezov/OJS
github.com/dtinth/twcs.js
github.com/percyhanna/js-class
github.com/jalopez/SimpleClassJS
github.com/jhamlet/proteus
github.com/petebrowne/classify
github.com/TdroL/Classy.js
github.com/azendal/neon
github.com/aulizko/Alan-Point-JavaScript-Library/tree/master/src/oop
Теперь одна хитрость. Чтобы каждый раз не делать акты приёма-передачи, подписывать и сканировать их — можно в контракте прописать пункт о том, что оплата заказчиком инвойса (счёта) влечёт за собой принятие оказанных услуг.

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

вы для проверки существования файла открываете два сокета, один настороне клиента, другой — на стороне сервера. при большом количестве таких запросов вы рискуете упереться во множество интересных ограничений.

кроме того, для проверки файла без его открытия есть команда stat. которая будет работать ощутимо быстрее любого из ваших способов. учите матчасть!
Вроде бы можно использовать функция из stream_context() для установки хидеров.
UFO landed and left these words here
UFO landed and left these words here
1
23 ...

Information

Rating
Does not participate
Location
Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity