Задать вопрос
  • Как можно сделать чтобы выводило 'Error!'?

    afishr
    @afishr
    make const not var
    Думаю стоит использовать функцию
    isNaN()
    Ответ написан
    Комментировать
  • Какая программа лучше для дизайна?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    даже профессиональные и настоящие дизайнеры, ну и начинающие тоже, как ни встречал, везде описывают свой путь в созидании изначальной картины сайта или любого дизайн-артефакта:
    это карандаш и лист бумаги.
    используйте это, прототипируйте, продумайте сначала детали, прорисуйте все, затем можно воспользоваться бесплатными или условно бесплатными сервисами по прорисовке и прототипированию (встречалось много вопросов на тостере, посмотрите), также как пример Axure и другие представители, ну и фотошоп, как вы упоминули его.
    но база - это карандаш+бумага+идея+мысли=эффективный результат в итоге!
    Ответ написан
    2 комментария
  • Какая программа лучше для дизайна?

    sabramovskikh
    @sabramovskikh
    Photoshop и Илюстратор
    Ответ написан
    Комментировать
  • Можно ли написать вирус на JavaScript?

    Начнем с того, что вирус - это довольно сложная вещь и состоит он обычно из нескольких модулей. Один из них - это эксплойт. Его основная задача - эксплуатировать уже известную уязвимость с целью получения возможности выполнения произвольного кода (как пример).

    Если мы мельком полистаем список уязвимостей, то увидим, что во многих из них фигурирует JS. Вот график взятый с того же сайта:
    RXmc_1mXxXA.jpg
    На нем прекрасно видно динамику уязвимостей приводящих к удаленному выполнению кода (красная линия). Отсюда логичный вывод - js можно использовать как эксплоит.

    Некоторые предыдущие ораторы неверно отмечали - браузер, как и любое другое полноценное приложение, имеет доступ к файловой системе (тот самый обычный доступ, когда можно писать, читать, создавать не системные файлы) посредством API операционной системы (например: WinAPI для windows). Внутри это все выглядит как системный вызов - программа передает управление на уровень ядра, предварительно сказав, что нужно открыть\создать\записать такой-то файл. Значит, нам нужен ассемблерный (да-да, не удивляйтесь) код, на который наш эксплоит передаст управление.

    Ок. Теперь перейдем к самому эксплоиту. Есть такая техника - heap spraying: мы берем нашу полезную (вредную) нагрузку и заполняем ей всю память:
    var buf = new Array();
    // заполним 200МБ памяти
    for(var i = 0;  i != 200; ++i) {
      buf[i] = nop + shellcode;
    }


    И, вполне возможно, что мы перезапишем определенные области (не буду вдаваться в подробности) и сможем выполнить наш shellcode. И да, как сказал riot26 - браузер после такого, скорее всего, крэшнется ... но нам это уже не важно - код будет внедрен и выполнен. Конечно, это банальщина и есть еще 100500 различных вариантов, о которых вам никто не расскажет, но идея ясна.

    PS пользуясь случаем - передаю привет людям в погонах!
    Ответ написан
    2 комментария
  • Как обращение к многомерному массиву имея строку?

    bigton
    @bigton
    Web-программист
    Универсальное решение для большого кол-ва ключей
    $arr = ['one' => ['two' => 'kek']];
    $key = '[one][two]';
    
    function arr_key_val($arr, $key) {
    
    	$keys = trim($key, '[]');
    	$keys = explode('][', $keys);
    
    	$return = $arr;
    	foreach ($keys as $k)
    		$return = $return[$k];
    
    	return $return;
    }
    
    echo arr_key_val($arr, $key);
    Ответ написан
    4 комментария
  • Как обращение к многомерному массиву имея строку?

    magalex
    @magalex
    Архитектор распределённых систем управления
    $a = array('one' => array('two'=>'kek'));
    $string = '[one][two]';
    preg_match_all('/(\[[^\]]+\])/',$string,$matches);
    $a[$mathes[0][0]][$mathes[0][1]];
    Ответ написан
    Комментировать
  • Как изменить высоту блока через js?

    @dixoNich
    frontend developer
    Комментировать
  • Можно ли написать вирус на JavaScript?

    Разумеется никому не нужен браузер, который вам позволит, не спрашивая пользователя, сделать на его машине что-либо серьезное. Фактически, в браузере и API-то толком нет, чтобы, допустим, файловую систему шерстить. Оно там и не нужно, веб-приложение на то и веб, что большинство данных берет с сервера, в отличие от приложения десктопного.
    Другое дело, что в браузере можно искать уязвимости, и пытаться их эксплуатировать, но "на чем" будет написан ваш вирус в таком случае - вопрос конкретной уязвимости. Если это будет удаленное выполнение кода, то на js вы скорее всего напишете лишь непосредственно эксплоит, а полезная нагрузка уже должна быть в нативном коде платформы жертвы.
    Писать обыкновенные вирусы на языках вроде C/C++/C# можно потому, что они исполняются как процессы операционной системы, и имеют доступ либо к нативному API, либо к API некоей плафтормы, такой как .NET. А эти API имеют достаточно средств для доступа к системе - достаточно лишь заставить жертву запустить тело вируса и, возможно, дать повышенные привелегии (хотя тем же шифровальщикам повышенные привелегии совсем не нужны - им ничто не мешает перезаписывать несистемные (пользовательские) файлы и вымогать деньги за дешифратор). В браузере таких средств нет. Если они и появятся, то тогда наверняка будет какой-либо механизм четкого разграничения доступа.
    Максимум что можно сделать, как сказал Itvanya - завалить движок js хламом (навыделять памяти, запилить кучу таймеров), с контролем съедаемых ресурсов сейчас у браузеров плоховато.
    Ответ написан
    Комментировать
  • Как структурировать свои репозитории на ГитХабе?

    Defman21
    @Defman21
    Довольно извращенный вариант, но все же.
    Создаете один репозиторий (по сути - категорию). С помощью submodules добавляете свои репозитории, подходящие под эту категорию, в этот репозиторий и push'ите на Гитхаб. Вот вам и папка, содержащая кучу других папок, которые ссылаются на Ваши репозитории на Гитхабе. Для еще большего удобства можете создать отдельную организацию, чтобы не засорять список своих репозиториев еще одним репозиторием-категорией :)
    Ответ написан
    1 комментарий
  • Как сделать setinterval каждые 10 секунд?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • На что можно заменить \r\n\ в php или как выявить символ переноса каретки в linux?

    Stalker_RED
    @Stalker_RED
    символ перевода каретки, который в php - \r\n

    Нет, это не так. Есть константа PHP_EOL, которая в зависимости от платформы будет равна \n или \r\n или еще чему-нибудь. Если вы не используете эту константу, то будет зависеть от кодировки файла.

    Проверьте кодировку, BOM, наличие \n в конце файла.
    UPD: еще можно сравнить работающий и неработающий файлы при помощи diff.
    Если php работает от имени www-data, не может ли это быть проблемой с правами?
    Ответ написан
    Комментировать
  • На что можно заменить \r\n\ в php или как выявить символ переноса каретки в linux?

    Deroy
    @Deroy
    Senior Developer, Software Architect
    в PHP существует константа PHP_EOL - строковое значение перевода каретки под ту платформу на который работает код.

    Ответ написан
    Комментировать
  • Создание веб-страниц сайта на базе готовой БД. Как?

    ой как ты ошибаешься в своих метафорах

    для тебе ответ лежит на глубине, при которой тебя расплющит от давления

    тебе все равно придется переписывать функционал сайта под запросы в БД
    нет никаких простых решений
    дуй на фриланс и плати

    что за прикол - иметь интернет-магазин, который будет приносить деньги, но при этом не платить за него ни копейки? когда было, чтобы бизнес был бесплатным, учитывая дешевизну создания сайтов
    Ответ написан
    Комментировать
  • Как настроить права доступа к файлам для перезаписи php-скриптом?

    DevMan
    @DevMan
    а зачем вам в этом деле апач и юзер www-data?
    делаете простой консольный скрипт и гоняете его по крону от своего юзера.
    Ответ написан
  • Может кто знает откуда шаблон скачан?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Шаблон - ужасное говно. Некоторые элементы типовые, некоторые привет из 90-х.
    Ответ написан
    1 комментарий
  • Может кто знает откуда шаблон скачан?

    у какого-нибудь 9-классника с флешки
    Ответ написан
    Комментировать
  • Почему возникает 400 ошибка при использовании символа % в url?

    Stalker_RED
    @Stalker_RED
    Доктор, когда я делаю вот так у меня болит. — А вы так не делайте


    Потому что спецсимвол.
    Ответ написан
    Комментировать
  • Для чего существует $_REQUEST?

    Stalker_RED
    @Stalker_RED
    Для начала, для чего существует POST.
    Представим, что у вас есть сайт example.com и на нем форма с кнопкой, удаляющаяя статью.
    На сервере вы, естественно, проверяете авторизован ли пользователь и есть ли у него права на удаление.

    При нажатии на кнопку через post передаются такие параметры
    article_id: 123
    action: delete

    Если на сервере вы будете получать эти данные при помощи $_REQUEST, то возможна ситуация, когда злоумышленник делает так:
    <img src="http://example.com?action=delete&article_id=1">
    <img src="http://example.com?action=delete&article_id=2">
    <img src="http://example.com?action=delete&article_id=3">
    <img src="http://example.com?action=delete&article_id=4">

    Публикует такие "картинки" вот прямо здесь, в комментариях на тостере.
    При этом ваш браузер конечно попытается эти картинки получить, и выполнит эти запросы с ВАШИМИ правами.

    В случае, если вы обращаетесь к $_POST - такой фокус не сработает. Кроме того, данные отправленные через POST не попадут в историю браузера и в логи той wi-fi точки или роутера, через которую вы сидите. URL попадет, а POST data - нет. В отличие от GET.

    А $_REQUEST существует для удобства. К примеру у вас есть форма поиска, которая может работать и через POST и через GET. Это удобно, когда пользователь может скопировать URL с поисковым запросом.
    Ответ написан
    Комментировать