2013-02-10 5 views
1

Этот вопрос связан с собеседованием, которое у меня было. Интервьюер спросил меня о сайте, который я построил. Я был свеж из школы и все еще делал много чего не так, потому что я не знал ничего лучшего, и мне нечего было спрашивать, а . Когда я выложил сайт для своего интервьюера на доске, он был удивлен, что Я не использовал веб-службу для доступа к моей базе данных. Он предположил, что это не безопасно , но не вдавалось в детали. Они думали, что никогда не было , чтобы сделать это как меру безопасности, и я думал, что ошибаюсь, потому что не делаю этого. Мой код был всего одна страница. Нет MVC, мои подключения php и все мои php/mysql select, inserts и т. Д. Были написаны на php в том же файле как мой html/javascript и все остальное (неправильно по разным причинам, но не по теме на данный момент). Моя страница защищена https, и я думал, что этого достаточно. Также оглядываясь назад, он может не знал, что моя база данных была на localhost. Путаница в вопросе исходит из моего незнания в то время и сейчас.Почему мыло безопасно? почему бы не HTTPS?

Так что реальный вопрос (я думаю) должен быть, мне нужно иметь веб-сервис, такой как мыло, действующее как промежуточный между моей базой данных, чтобы сделать мой сайт безопасным (хотя это был локальный хост)? Мое предположение: мыльный сервер будет выполнять все операторы mysql и возвращать интересующие меня значения. Или, наоборот, SAOP Sever будет получить базу данных Mysql для выполнения функций mysq и значений (что, я думаю, добавит настоящую безопасность стоимость). Я думал, что, поскольку я использовал php и https на стороне сервера, я был бы защищен (кроме таких вещей, как mysql-инъекция, но у меня были другие вещи для учета таких вещей, как mysql_real_escape_string() и некоторые другие вещи).

В Short Моего вопроса будет с мылом, чтобы отделить вещи между основным файлом подкачки и файлом, который фактически сделал PHP MySQL выберите отчетность на локальном добавить любое значение безопасности против HTTPS. Не могу ли я просто подключить php к , а затем использовать сервер Mysql для выполнения некоторых функций mysql со страницами, защищенными https? Разве это не было бы безопасно?

Помимо меня, не используя модель MVC, вы можете предложить совет по мудрецу на https vs SOAP?

Я пытаюсь сделать самостоятельное изучение в php. Сейчас я работаю на другом языке, в основном написав сценарии. У меня есть настоящая страсть к php, и я хочу учиться, но не знаю, куда надежно поворачивать.

Благодаря

+0

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

+0

спасибо, я отредактирую это в ближайшем будущем. –

+0

@HarryFairbanks: Я не тот, кто занижен, но ответьте на этот комментарий после того, как вы отредактировали сообщение. Вы просите что-то принципиально ценное. Если отредактированный вопрос ясен и, по сути, я буду его продвигать. –

ответ

1

Вы смесительные концепции защиты доступа к базе данных, и защита доступа к вашей веб-службы.

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

Если ваш веб-сервис не предназначен для широкой публики, вы должны отдельно контролировать доступ к веб-службе. И SOAP, и REST предоставляют надежные механизмы для этого.

SOAP сам по себе не защищает доступ к файлам на сервере. Он обеспечивает механизм защиты доступа к веб-службе.

UPDATE

Это глупо понятие требовать веб-службы между веб-сайтом и базой данных в целях «безопасности». Веб-сервис следует рассматривать как альтернативный интерфейс для доступа к функциям, а не как уровень безопасности.

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

С архитектурной точки зрения разумно отделить доступ к данным от пользовательского интерфейса (независимо от того, работают ли слои на тех же или разных машинах). В мире ASP.Net шаблоны Repository and Unit of Work довольно распространены. Я не уверен, какие шаблоны обычно используются в PHP. Создание отдельного веб-сервиса только для изоляции БД, конечно, не является таким шаблоном.

+0

Спасибо, это отвечает на мои вопросы и проливает свет на путаницу. –