Задать вопрос
  • ASP .NET, VS2011, Publish

    FanKiLL
    @FanKiLL
    Что значит раздать? Отдать исходники или задеплоить на сервер?
    В Package Manager Console вбиваете Enable-Migrations, у вас появится файл Configuration.cs где можно указать как будет создаваться база, по дефолту она создается при старте app. Там же есть матод Seed он вызывается после «миграции», в этом методе вы можете презаполнить базу, например создать тестовые записи.
  • Как изучать sqlalchemy?

    FanKiLL
    @FanKiLL
    Конфиг ещё можно в Dictionary хранить:
    config = {"DEBUG": False,
     "POST_PER_PAGE": 20,
      "OTHER_VALUE": "Test"
     }
    


    Забирать так:
    >>> config["DEBUG"]
    False

    >>>config["POST_PER_PAGE"]
    20
  • Как изучать sqlalchemy?

    FanKiLL
    @FanKiLL
    circular imports — это когда один модуль например 'a' импортирует модуль 'b' а тот в свою очередь импортирует модуль 'a', не всегда бывают конфликты, но circular imports оч часта беда в python, во всяком случае у новичков, коим я себя отношу.
    Так же cyclic import упоминается в официальных доках по flask вот тут, где приводят более менее норм структуру для большого приложения а не всё в одном файле.http://flask.pocoo.org/docs/patterns/packages/#larger-applications

    Every Python programmer hates them, and yet we just added some: circular imports (That’s when two modules depend on each other. In this case views.py depends on __init__.py). Be advised that this is a bad idea in general but here it is actually fine.


    Вот тут в офф wiki на github (писал не автор framework'a, но многим такая структура понравилась в mail list) можете посмотреть, предлагают структуру приложения на flask где для каждого модуля свой файлик с моделям. Используются flask Blueprint — github.com/mitsuhiko/flask/wiki/Large-app-how-to
  • Как реализовать авторизацию клиентского приложения?

    FanKiLL
    @FanKiLL
    Anonym Тогда остаётся проблема, злоумышленник бомбит сервер отсылаю %clientUniqueName% + какой то текст, вы тратите серверные ресурсы пытаясь разшифровать + понять действительно ли данные расшифровались например проверка есть ли како-то поле…

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

    FanKiLL
    @FanKiLL
    По сути вы пытаетесь имплементировать PGP.
    Если у вас не один клиент конечно — Встаёт вопрос, что посылать вместе с зашифрованным телом, нужен какой то идентификатор чтоб сервер знал какой ключ ему применить для расшифровки (имя пользователя или id и т. д. к которому привязан сессионный ключ). Вы же не будете в for расшифровать применяя все ключи пока не расшифруете.

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

    FanKiLL
    @FanKiLL
    Как вариант в зашифрованном теле, ввести ещё 1 поле TTL в которой будет хранится (timestamp) отправки, на сервере проверяем если TTL не старше определённого времени например 3 минуты. Так если злоумышленник соберёт уже подписанные сообщения он не сможет ими бомбить сервер, вернее отослав на сервере ничего не произойдет.

    А вообще вы поставили жёсткие рамки.
  • Есть ли способ перегружать страницу сразу после сохранения изменений в файле (VS 2012 - APS.NET MVC)?

    FanKiLL
    @FanKiLL
    Красиво, только непонятно зачем искать себе приключения:)
    Можно и для контроллеров сделать, как вы описали в коменнте выше, если есть изменения делать ребилд.
    По сути изобретём shotgun для рельсов — rtomayko.github.com/shotgun/
  • Можно ли уменьшить объем Datastore Stored Data из админки GAE?

    FanKiLL
    @FanKiLL
    Но сразу предупрежу, когда будете заливать назад базу, вы израсходуйте Write Operations лимиты, так что осторожней.
  • Подключение к MySQL из iPhone-прилоложения?

    FanKiLL
    @FanKiLL
    Плохо тем, что вы захардкодите в клиенте логин и пароль от базы. Любым снифером при подключении аппликации с сервером узнают ваш пас и логин и будут делать что хотят. Если будут какие то формы в аппликации надо на клиенте проверять, чтоб не сделали sql injection. Да и многие другие проблемы будут возникать.

    Единожды прописав на клиенте тот или иной запрос, чтоб его поменять вам нужно будет выпускать апдейт. Если же использовать rest api вы можете на сервере оптимизировать, даже переписать с python на java к примеру главное чтоб url на который будет приходить запрос отдавал тот же паттерн данных, что прописан на клиенте.

    И т.д…
  • Простенькое веб приложение-парсер

    FanKiLL
    @FanKiLL
    Маленький tip, если таки будете кого-то парсить, узнавайте о новых постах из rss, так вы снизите нагрузку и на свой сервер и на сервер сайта который парсите.
  • Выбор версии Spring?

    FanKiLL
    @FanKiLL
    Если честно, не могу в этом плане что-то советовать мало знаком с spring.
    Попробуйте почитать вот эту тему, тут можно быстро поверхностно ознакомится с структурой spring www.javatalks.ru/ftopic13391.php ну и вообще потолкаться на этом форуме в разделе «Java Enterprise технологии» там много FAQ'ов.

    Для меня когда про spring читал для ознакомления, трудно было понять их IoC + Hibernete надо было осваивать, а вот EJB 3.1 и JPA 2.0 показалось легче.