Задать вопрос
  • Как понять что это приходит с сайта?

    Punkie
    @Punkie
    Спам с виагрой. Отлаживайте akismet и другие антиспам-модули.
    Ответ написан
    2 комментария
  • Какие библиотеки используете для работы с зашифрованным zip в Java 8?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Поддержка ZIP архивов в яве есть из коробки. Не обновляется не значит плохо, вероятно просто не осталось багов.
    Шифрация в яве делается через, внезапно,штатный класс Cipher.
    Ответ написан
    1 комментарий
  • Есть ли решения по подписи запросов ЭЦП на javascript?

    @Danbka
    Если я правильно понял вопрос, то CryptoPro Browser Plugin, JC-WebClient, RuToken Plugin - это то, что вам нужно.
    Ответ написан
    2 комментария
  • PHP: mkdir, почему permission denied при 0777?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    В этой ошибке указано, что php скрипт, расположенный тут:
    /var/www/www-root/data/www/xndaasdqfjqwm7b.xn--p1ai/vendor/yiisoft/yii2/helpers/BaseFileHelper.php
    видимо пытается создать папку ( mkdir() line 488)

    Так какой именно папке вы права задаете?
    Посмотрите в коде/логах, какую папку он пытается создать и где и вот там уже и назначайте права.
    Ответ написан
    Комментировать
  • Использование программы winexe в Linux вопрос?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    экранирование не помогает?
    winexe -U домен@имя%пароль \/\/IP-компьютера "msg * \/server:pc001 Message1"
    Ответ написан
    1 комментарий
  • Какие плюсы linux перед windows для веб-разработчика?

    sim3x
    @sim3x
    man
    apt
    bash/sh/zsh
    ssh/etc
    Ответ написан
    Комментировать
  • Как массово отписаться от рассылок в Яндекс почте?

    orlov0562
    @orlov0562
    I'm cool!
    Я один раз вот так нажал отписаться, а по сути уведомил спамеров о том, что мой ящик жив и на нем есть люди переходящие по ссылкам из письма - через неделю начали засыпать спамом

    Я обычно использую кнопку "пометить как СПАМ", а так же фильтрацию по тексту или отправителю, отправляя автоматически письма в папку спам.

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

    Stalker_RED
    @Stalker_RED
    Очень крутой вопрос, прямо хочется бегать по кругу, размахивать руками и кричать.
    Ну... как-бы... ВСЕХ дыр стоит остерегаться!
    И того, что вам вместо аватарки шеллскрипт зальют, и того, что вместо поискового запроса будет sql инъекция, и того, что в вашу форму с оплатой заказа прилетит "левый" запрос сформированный при помощи XSS. И это не полный список возможных неприятностей, если что. А полный список будет сильно зависеть от того, какие вообще злоумышленник сможет делать запросы и есть ли в обработчиках этих запросов хоть какие-то проверки.

    Общие правила примерно такие:
    1. Проверяйте и/или фильтруйте все данные, которые приходят со стороны пользователя
    1a. Убедитесь, что эти запросы не ddos, не брутфорс и не xss.
    2. Наймите хорошего сисадмина, который будет следить за безопасностью и обновлениями OS и компонентов вебсерера.

    Конечно, если ваш сайт не представляет интереса для "крутых хакеров™", то можно на все это просто забить и довольствоваться защитой Неуловимого Джо.
    Ответ написан
    1 комментарий
  • Нехватает знаний, язык c#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Книги - это хорошо, но есть одно но... пока вы не сядите и не начнёте делать, "заочно" выучить/понять будет крайне сложно. К примеру, поставте задачу: сделать... мини БД (судя по вопросу). Что для этого нужно? Открыть то, где это всё можно) (наверно Visual Studio) отлично подойдет.
    Потом, сначала выбрать WindowForms - т.к. wpf может оказаться немного по сложнее на первой этапе из-за разметки xaml (xaml -отдельная вселенная, где уйдут очень много месяцев изучения и практики, чтобы освоить до нормального уровня). Далее размещаем TextBox-ы кнопки и т.д. После этой "прелюдии" переходим в код. И тут как раз нужно пользоваться тем, что делают практически все) (п.с. это не открыть учебник) - открыть гугл/яндекс и ввести "база данных c# примеры" - смотрите, читаете, копипастите ) и так - "разведкой боем" - вы реально поймёте как работает. Т.к. после прочтения любой книги, вы забудите 2/3 того, что прочитано в начале и в середине уже ближе к концу (особенно в книге Троелсена ). И никого не слушайте - что мол, искать решения (готовые или частично готовые) гуглением - это плохо. Главный ИТ-шник гугла - 60% времени сам гуглит в поисках того, как и что можно сделать. И это будет лучше для вас. Т.к. Вы практически занимаетесь "практикой", читаете форумы, где всё "готово" или "почти готово" с разъяснениями. Так легче и проще втянуться (и набрать опыт) по c#. Одними книгами сыт не будешь. Практика и личные ошибки - самые лучшие учителя

    п.с. но для этого, конечно нужны хотябы базовые знания... о типах, классах, конструкторах, геттерах и сеттерах, об основных взаимодействиях между объектами (конкатенация, наследование, интерфейсы).
    Ответ написан
    3 комментария
  • Есть ли хороший антивирус для работы на хостинге?

    @nirvimel
    есть один проект на шаред хостинге, там постоянно появляются шеллы.

    В болоте лежит туша мамонта с прошлогодней охоты, но в ней (почему-то) постоянно заводятся черви.


    Ну не могут шеллы заводится сами! НЕ МОГУТ!
    Пока у вас в команде будет в порядке вещей такой подход к гигиене системной безопасности и разграничению доступа, когда шеллы на сайте заводятся сами, до тех пор вам не поможет ни один антивирус (ни платный, ни бесплатный).
    Ответ написан
    Комментировать
  • Как сгенерировать последовательно набор из одной буквы и две цифры в PHP?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    В базе данных или где-то ещё хранить последовательные целые ID, присваиваемые пользователям.

    Остаётся сделать мэппинг из целых 0, 1, 2, ... в A00, A01, ... A99, B00, B01, ...

    26 значений (A–Z), 10 значений (0–9), ещё 10 значений (0–9) – 2600 значений всего получится записать в три таких разряда. Вам этого точно достаточно?

    <?php
    function encode($n) {
      if($n >= 2600 || $n<0) throw(new Exception('Out of range 0 <= n < 2600'));
      return chr( 65 + floor( $n / 100)) . sprintf( '%02d', $n % 100);
    }
    
    echo encode(1654); // Q54

    Проверяем, чтобы на вход пришло число не больше 2599 ("Z99") и не меньше 0.
    Берём символ по его ASCII-коду функцией chr(): А=65, B=66 ... Z=90. Чтобы получить из сотен нужный код, делим $n на 100 и округляем вниз. Получается от 0 до 25. Прибавив 65 получаются значения от 65 до 90 – как раз коды от A до Z.

    Младшие два разряда, десятки и единицы, у числа сохраняются.
    Ответ написан
    1 комментарий
  • ASP.NET Web API?

    EreminD
    @EreminD
    Кое-что умею
    ща все будет.

    Во-первых, ASP.NET MVC5 = ASP.NET Core
    Остается вопрос: 4ка или Core
    Ключевая идея Core - кроссплатформенность. Предполагается, что его можно хостить (и разрабатывать) не только на Windows.
    Разница в типах служебных файлов (например, где и как хранится список зависимостей или настроек приложения). Но, на чуть более высоком уровне, WebAPI он и есть WebAPI.

    Задайте вопросы:
    • На каком окружении будет располагаться приложение? - окружение позволит определить нужную вам конфигурацию
    • Перспективы развития проекта? - если проект не подразумевает многолетнего развития (написали и просто поддерживаем), то можно обойтись и "традиционным" ASP.NET WebAPI. Если же это будет жить и развиваться много лет, берите Core, чтобы не получилось, что вы работаете с неподдерживаемой технологией (мелкомягкие сейчас будут уделять больше внимания именно ему)
    Ответ написан
    5 комментариев
  • Существует ли хороший скрипт по масштабированию изображений на сайте?

    Stalker_RED
    @Stalker_RED
    Для ресайза imagick уже посоветовали, а для сжатия pngcrush, optipng, pngout, kraken. Если нужно именно максимальное сжатие, то можно прогонять через все и сравнивать результат.
    Ответ написан
    Комментировать
  • Почему не получается спарсить RSS?

    @om1058
    Во втором вашем примере - поменяйте местами принты.
    Ответ написан
    Комментировать
  • Как сделан этот сайт http://flooringstudio.esignserver2.com?

    AMar4enko
    @AMar4enko
    Бэкенд на джаве, о чем говорит jsessionid в параметрах.
    Смена матерала пола и стен - с сервера приходит новая картинка с примененными материалами.
    Сделать это можно с помощью заранее подготовленного PNG с прозрачными областями и подкладывать под него заранее подготовленные куски пола и стен.
    Типа
    - положили на картинку готовое изображение пола
    - положили на картинку готовое изображение стены
    - положили сверху обстановку с маской пола и стены.

    С помощью частичной прозрачности делаются тени от предметов.
    Ответ написан
    2 комментария
  • Обязателен ли C/C++ при изучении java?

    @koronabora
    Человек
    На данном этапе - нет. Когда столкнетесь с задачей, решение которой на Java будет работать плохо - тогда стоит изучить плюсы. У Java хороший компилятор, а в сети полно руководств по ускорению кода.
    Ответ написан
    Комментировать
  • Как защитить код от воровства в крупной компании?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Полную (или почти) защиту вы можете реализовать по принципу банковских "теневых" серверов.
    Похожую систему безопасности описал Сергей

    Когда я работал в Х банке, мы спускались на лифте в офис разработки, там проходишь рамки, отдаешь мобильники и др. электронику. Выдают офисную рацию для связи.
    Каждый комп находится в таком положении, что при желании др. человек не увидит чем вы занимаетесь.
    В системниках есть только один usb (и то не везде), который имеет физическую защиту. Служит для банковских ключей. Периферия подключена ps/2.
    Вся локальная сеть не имеет доступа во внешний мир.
    Код выкладывается на боевую систему через сервер-шлюз. Т.е. данные из рабочей сети выкладываются на шлюз, локальная сеть отрубается а далее уже на продакшен.
    Шлюз защищен вероятно хорошо, но этого я уже не знаю.

    Так же на столе стоит камера- блок. Когда вы отходите от нее (от компа), система блокируется и просит ввести логин/пароль.

    Вот такая система безопасности была на старой работе. Может там и еще что то было, но я этого не знаю.
    Ответ написан
    6 комментариев
  • Как использовать динамические объекты в программе C#?

    kochura_official
    @kochura_official Автор вопроса
    Учусь писать самостоятельно программы.
    Я сломал весь мозг и нашел решение

    Кому интересно смотрите код
    using System;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    using System.Xml;
    using System.Xml.Linq;
    
    namespace newprogram
    {
        public partial class Form1 : Form
        {
            // Надо было дописать вот этот код
            private Panel panel_profile;
            private TextBox textbox_username;
            private TextBox textbox_userpass;
            private Label label_namepage;
            private Label label_username;
            private Label label_userpass;
            private Button button_login;
            private Button button_register;
            private Button button_close;
    
            public Form1()
            {
                InitializeComponent();
                profile();
            }
    
            private void profile()
            {
                panel_profile = new Panel();
                textbox_username = new TextBox();
                textbox_userpass = new TextBox();
                label_namepage = new Label();
                label_username = new Label();
                label_userpass = new Label();
                button_login = new Button();
                button_register = new Button();
                button_close = new Button();
                //
                // Параметы - panel_profile
                //
                panel_profile.Size = new Size(400, 400);
                panel_profile.Location = new Point(200, 80);
                panel_profile.BackColor = Color.FromArgb(238, 238, 238);
                panel_profile.TabIndex = 2;
                panel_profile.Visible = true;
                panel_profile.Name = "panel_profile";
                //
                // Параметы - label_namepage
                //
                label_namepage.Size = new Size(400, 40);
                label_namepage.Location = new Point(200, 20);
                label_namepage.TextAlign = ContentAlignment.MiddleCenter;
                label_namepage.ForeColor = Color.Gold;
                label_namepage.Font = new Font("Verdana", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204);
                label_namepage.Text = "ФОРМА АВТОРИЗАЦИИ";
                label_namepage.Name = "label_namepage";
                //
                // Параметы - label_username
                //
                label_username.Location = new Point(50, 40);
                label_username.Size = new Size(300, 30);
                label_username.TextAlign = ContentAlignment.MiddleLeft;
                label_username.Text = "ЛОГИН";
                label_username.Name = "label_username";
                //
                // Параметы - label_userpass
                //
                label_userpass.Location = new Point(50, 140);
                label_userpass.Size = new Size(300, 30);
                label_userpass.TextAlign = ContentAlignment.MiddleLeft;
                label_userpass.Text = "ПАРОЛЬ";
                label_userpass.Name = "label_userpass";
                //
                // Параметы - textbox_userpass
                //
                textbox_username.Size = new Size(300, 30);
                textbox_username.Location = new Point(50, 70);
                textbox_username.Multiline = true;
                textbox_username.MaxLength = 20;
                textbox_username.Name = "textbox_username";
                textbox_username.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                //
                // Параметы - textbox_userpass
                //
                textbox_userpass.Size = new Size(300, 30);
                textbox_userpass.Location = new Point(50, 170);
                textbox_userpass.Multiline = true;
                textbox_userpass.MaxLength = 20;
                textbox_userpass.Name = "textbox_userpass";
                //
                // Параметы - button_login
                //
                button_login.Size = new Size(140, 30);
                button_login.Location = new Point(210, 240);
                button_login.Text = "ВОЙТИ";
                button_login.Name = "button_login";
                button_login.FlatAppearance.BorderSize = 0;
                button_login.FlatAppearance.MouseOverBackColor = Color.FromArgb(50, 50, 50);
                button_login.FlatStyle = FlatStyle.Flat;
                button_login.BackColor = Color.FromArgb(40, 40, 40);
                button_login.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                button_login.ForeColor = Color.Gainsboro;
                //
                // Параметы - button_login
                //
                button_register.Size = new Size(140, 30);
                button_register.Location = new Point(50, 240);
                button_register.Text = "РЕГИСТРАЦИЯ";
                button_register.Name = "button_register";
                button_register.FlatAppearance.BorderSize = 0;
                button_register.FlatAppearance.MouseOverBackColor = Color.FromArgb(50, 50, 50);
                button_register.FlatStyle = FlatStyle.Flat;
                button_register.BackColor = Color.FromArgb(40, 40, 40);
                button_register.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                button_register.ForeColor = Color.Gainsboro;
                //
                // Параметы - button_close
                //
                button_close.Size = new Size(30, 30);
                button_close.Location = new Point(370, 0);
                button_close.Text = "X";
                button_close.Name = "button_close";
                button_close.FlatAppearance.BorderSize = 0;
                button_close.FlatStyle = FlatStyle.Flat;
                button_close.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                button_close.ForeColor = Color.FromArgb(40, 40, 40);
                button_close.Click += new EventHandler(button_close_Click);
                //
                // Контроль элементов
                //
                Controls.Add(label_namepage);
                Controls.Add(panel_profile);
                panel_profile.Controls.Add(label_username);
                panel_profile.Controls.Add(label_userpass);
                panel_profile.Controls.Add(textbox_username);
                panel_profile.Controls.Add(textbox_userpass);
                panel_profile.Controls.Add(button_login);
                panel_profile.Controls.Add(button_register);
                panel_profile.Controls.Add(button_close);
            }
            private void button_profile_Click(object sender, EventArgs e)
            {
                profile();
            }
            private void button_close_Click(object sender, EventArgs e)
            {
                panel_profile.Visible = false;
            }
        }
    }
    Ответ написан
    3 комментария