Aspnet пользователь что это - TurboComputer.ru
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд (пока оценок нет)
Загрузка...

Aspnet пользователь что это

Aspnet пользователь что это

Если я предоставлю учетной записи пользователя Asp.Net (сетевая служба для Win 2003) права на изменение корневой папки моего общедоступного веб-сайта, пользователь может отправить запрос на сервер, чтобы каким-то образом изменить .aspx файлы моего сайта? Каковы риски, связанные с этим?

3 Ответа

Безопасно ли давать учетной записи пользователя Asp.Net разрешения на изменение корня веб-сайта?

100% определенно NOT .

может ли пользователь отправить запрос на сервер, чтобы каким-то образом изменить.aspx файлы моего сайта?

Только если вы создадите страницу, которая делает это в ответ на запрос. В противном случае, нет, не в одном запросе.

Они могут делать такие вещи, как отправлять формы с большим количеством символов в каждом поле, чем ваша страница была создана для обработки и попытки создать переполнение буфера, которое они могут использовать. Но это происходит по нескольким запросам. Или они могут создать интерактивный сеанс http и искать уязвимости, чтобы захватить ваш процесс таким образом.

Короткий ответ: Не делайте этого

Длинный ответ: все еще нет, но вот один сценарий, который может заставить вас подумать дважды (Есть еще много проблем):

Если у вас есть контроль загрузки файлов в любом месте вашего сайта, скажем, для загрузки изображений, и злоумышленнику удается поставить под угрозу вашу безопасность (не забывайте, что это не обязательно означает взлом вашего сайта-они могут просто захватить чью — то сессию или угадать/украсть пароль), они могут загрузить вредоносный скрипт (.страница ASPX). Сайт имеет разрешения «modify», поэтому он может записать файл на диск.

Я вижу, что вы отметили вопрос с .net, поэтому представьте, что они загружают .aspx-страница с некоторым , которая считывает содержимое файла web.config и отображает их.

Вы поместили какие-либо строки подключения к базе данных с паролями в открытый текст в вашем файле web.config? Потому что, если вы это сделали, представьте, что их следующий шаг-загрузить новый .aspx-файл, который подключается к этим базам данных. затем они могут читать ваши базы данных, удалять данные, изменять данные. Вероятно, им действительно не нужно имя пользователя/пароль, потому что они могут просто использовать ваши именованные строки подключения, но эта информация может быть полезна для другой атаки, о которой я здесь не думал.

Я думаю, вы видите, куда ведет этот сценарий.

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

Если вам нужно записать / изменить файлы на веб-сервере, вам лучше предоставить пользователю aspnet разрешения на изменение отдельной папки, которая не будет иметь разрешений «execute» под IIS (и, возможно, даже невидима для IIS вообще).

Дополнительная информация (относительно минимальных требуемых разрешений и, следовательно, рекомендуемых максимальных разрешений): http://support.microsoft.com/kb/815153

Похожие вопросы:

Мне интересно, есть ли у кого-нибудь большой опыт работы с минимальным набором разрешений для учетной записи анонимного веб-пользователя, который требуется для запуска приложений ASP.Netv3.5 в IIS7.

Я использую Visual Studio 2005, C#. Visual studio 2005 имеет встроенный инструмент администрирования веб-сайта ASP.NET, который позволяет мне управлять пользователями. Однако мне необходимо.

У меня есть веб-приложение, которое работает на СЕРВЕР_А. Веб-приложение вызывает веб-сервис, который работает на СЕРВЕР_В. Веб-служба возвращает набор имен папок на файловой системе из СЕРВЕР_В.

Я хочу разрешить определенной учетной записи AWS читать разрешения на один из моих объектов S3 (файл) через URL. Можно ли предоставить разрешения другой учетной записи AWS, используя его учетную.

у меня есть проект веб-сайта портала заданий, в котором мне нужно зарегистрировать пользователя с помощью аутентификации google open .. так что я могу получить его / ее данные учетной записи, как.

Я совершенно запутался в этом, и ни один из текстов / документов / SO вопросов не прояснил этот вопрос для меня. Я хочу, чтобы мое приложение asp.net MVC могло сохранять документ XML в папку на.

У меня есть сайт asp.net, который использует поставщик членства ASP.net. Каждый комментарий, запись и т. д. В DB отслеживается userID. Поскольку MS не предоставляет способа изменить имя.

Безопасно ли выполнять задания cron из учетной записи root? (задание должно отправлять файлы журнала через email)

Что такое учетная запись компьютера ASP.NET?

Являетесь ли вы одним из наших пользователей, который получает приглашение под Windows 10 или Windows 8.1, 8 каждый раз, когда вы пытаетесь удалить или изменить определенную папку или файл? Все, что вам нужно сделать, это выполнить следующие шаги, и вы можете решить свою проблему с помощью ASP.NET MACHINE ACCOUNT в Windows 10 или Windows 8.1, чтобы быстро возобновить свою повседневную деятельность.

Почему мой компьютер имеет учетную запись ASP.NET?

Если вы установили обновления или новое программное обеспечение на свой компьютер, вы установили Microsoft.NET Framework 1.1, который включает в себя общее приложение времени выполнения, которое может понадобиться выполняемым приложениям. Во время этой установки создается учетная запись ASP.NET. Если ваш компьютер уже отобразил ваш рабочий стол сразу после запуска, вы можете увидеть экран приветствия при запуске компьютера с существующей учетной записью пользователя и учетной записью ASP.NET. Это потому, что на вашем компьютере теперь есть две учетные записи.

Учетная запись не разрешает удаленное или интерактивное соединение и имеет только привилегии гостевого уровня. Поэтому он не может использоваться кем-либо еще или Microsoft для подключения к вашему компьютеру. Если вы используете свой компьютер только для личного использования (то есть, если вы не являетесь разработчиком программного обеспечения, который должен разрабатывать и тестировать программное обеспечение с использованием Internet Information Services (IIS)), вы можете удалить эту учетную запись одним из следующих способов:

1) Удалить аккаунт и оставить . NET Framework установлены:
— Запустите инструмент управления компьютером в папке «Администрирование» (в разделе «Панель управления»).
— Выберите узел «Локальные пользователи и группы».
— Нажмите на узел «Пользователи» и выберите учетную запись ASPNET.
— Щелкните правой кнопкой мыши выбранную учетную запись и выберите «Удалить».

Исправление обновления декабря 2019:

Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.


(дополнительное предложение для Advanced System Repair Pro -> Cайт | Лицензионное соглашение | Политика Kонфиденциальности | Удалить)

2) Удалите .NET Framework (Примечание. Это предотвратит работу приложений, использующих .NET Framework):
— Откройте панель управления
— Откройте «Установка и удаление программ».
— Выберите Microsoft.NET Framework 1.1.
— Нажмите на Изменить / Удалить. Один из этих подходов полностью удаляет учетную запись из вашей системы.

Читайте также:  Завис компьютер что нажать на клавиатуре

Чтобы удалить эту учетную запись компьютера ASP.NET

Чтобы скрыть эту учетную запись, не затрагивая предоставляемые ею функции:

  1. Нажмите Windows + R, чтобы открыть окно «Выполнить», введите regedit и нажмите Enter.
  2. В окне вкладки «Редактор» перейдите к следующему разделу реестра: HKEY_LOCAL_MACHINE Software Microsoft Windows NT CurrentVersion Winlogon SpecialAccounts Userlist. Если Специальный
  3. Ключ учетных записей и ключ списка пользователей не существуют, создайте их.
  4. В правой части списка пользователей щелкните правой кнопкой мыши в любом месте и укажите значение New -> DWORD (32-bit).
  5. Назовите новое имя параметра реестра DWORD точно так же, как имя пользователя, используемое на экране входа в систему. (В этом случае учетная запись компьютера ASP.NET)
  6. Дважды щелкните значение записи DWORD и установите значение 0, чтобы скрыть учетную запись перед экраном приветствия. Чтобы восстановить учетную запись пользователя на главном экране, удалите регистрационную запись или установите значение данных в 1.
  7. Выйдите из редактора реестра. Выйдите из системы или перезагрузите компьютер, чтобы изменения вступили в силу.

Переустановка .NET Framework

Учетная запись создается из-за некоторых ошибок конфигурации во время первоначальной установки .NET Framework. Тем не менее, переустановка автоматически удаляет его. Поэтому мы рекомендуем вам загрузить фреймворк обратно на компьютер и попытаться установить его из исполняемого файла. Он скажет вам, что он уже установлен, и спросит, хотите ли вы его переустановить. Выберите Переустановить, и учетная запись будет автоматически удалена.

CCNA, веб-разработчик, ПК для устранения неполадок

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

Зачем нужна учетная запись ASPNET?

Опции темы

Зачем нужна учетная запись ASPNET?

Кстати может кто подскажет зачем на компе учетная запись ASPNET?

Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:

Интересно, но Belarc Advisor говорит, что она ни разу не использовалась. Это получается, что .NET F W на моей машине то же не запускался? А зачем он мне нужен-то? Помнится поставил я его когда устанавливал какую-то прогу, она потребовала .NET не ниже второй версии. Что это за фича и чем отличается версия 2.0 от 3.5 они вроде живут каждая своей жизнью!? может вторую при наличии 3.5 можно удалить?

Судя по кодовому слову ASP — это для поддержки Active Server Pages в IIS/PWS. Про версии не скажу. Попробуйте.

Я тоже так когда-то подумал и удалил 2ую версию. Но потом, когда я стал ставить программку(непомню, что за программа была), она у меня запросила 2ую версию. Пришлось ставить.

Добавлено через 1 минуту

Я её всегда удалял, от греха подалее, так как она мне 100% не нужна)

Последний раз редактировалось light59; 13.11.2008 в 16:53 . Причина: Добавлено

Учетная запись ASP.NET Machine A добавляется в систему при установке .NET Frimework или некоторых программ от HP, насколько я помню она используется для запуска некоторых программ и/или функций.

Так я всё таки не понял нужна учётка ASP.NET или нет? И какая разница между NET Framework 2.0 и 3.5 версий!

NET Framework 1.0
NET Framework 1.1
NET Framework 2.0
NET Framework 2.0 SP1
NET Framework 3.0
NET Framework 3.0 SP1
NET Framework 3.5 (содержит NET Framework 2.0 SP1 и NET Framework 3.0 SP1)

Разные программы требуют разный NET Framework,в зависимости от
того,какой NET Framework использовался для написания программы.
Можите установить NET Framework 3.5 если трафика не жалко.
В будующем может и пригодится,а может и нет.
Лично мне пока хватает и NET Framework 2.0

Эту учетку я всегда удалял и ни разу не испытывал каких-либо затруднений с программами, которым нужен framework. Эта учетка вообще нужна только для разработчиков.

Добавлено через 10 минут

Вот ещё вычитал с одного из ресурсов ©©

Последний раз редактировалось light59; 14.11.2008 в 13:55 . Причина: Добавлено

3.5 вроде просто аддон для второго. А приложения должны бы молча запускаться на более старших версиях фреймворка, его для этого и писали.

Добавлено через 1 минуту

это же очевидно. Чем выше версия, чем толще и жирнее приложение.

Последний раз редактировалось maXmo; 14.11.2008 в 14:20 . Причина: Добавлено

NET Framework 1.0
NET Framework 1.1
NET Framework 2.0
NET Framework 2.0 SP1
NET Framework 3.0
NET Framework 3.0 SP1
NET Framework 3.5 (содержит NET Framework 2.0 SP1 и NET Framework 3.0 SP1)

Разные программы требуют разный NET Framework,в зависимости от
того,какой NET Framework использовался для написания программы.
Можите установить NET Framework 3.5 если трафика не жалко.
В будующем может и пригодится,а может и нет.
Лично мне пока хватает и NET Framework 2.0

Ага вроде всё понятно, но только когда я удалял NET Framework 1.1 он удалился молча. Попытка удалить NET Framework 2.0 SP1 при установленном NET Framework 3.5 привела к воплям, что такие-то и такие-то проги запускаться не будут.

Добавлено через 1 минуту

3.5 вроде просто аддон для второго. А приложения должны бы молча запускаться на более старших версиях фреймворка, его для этого и писали.

Добавлено через 1 минуту

это же очевидно. Чем выше версия, чем толще и жирнее приложение.

Только Sound Forge 9.0 не хочет работать под версией 3.5!

Добавлено через 1 минуту

Эту учетку я всегда удалял и ни разу не испытывал каких-либо затруднений с программами, которым нужен framework. Эта учетка вообще нужна только для разработчиков.

Добавлено через 10 минут

Вот ещё вычитал с одного из ресурсов ©©

С учёткой выяснили, удаляю, спасибо!

Добавлено через 1 минуту

NET Framework 1.0
NET Framework 1.1
NET Framework 2.0
NET Framework 2.0 SP1
NET Framework 3.0
NET Framework 3.0 SP1
NET Framework 3.5 (содержит NET Framework 2.0 SP1 и NET Framework 3.0 SP1)

Разные программы требуют разный NET Framework,в зависимости от
того,какой NET Framework использовался для написания программы.
Можите установить NET Framework 3.5 если трафика не жалко.
В будующем может и пригодится,а может и нет.
Лично мне пока хватает и NET Framework 2.0

А причём здесь трафик? NET Framework 3.5 ставил с диска от журнала ХАКЕР.

Кстати NET Framework 1.0 NET Framework 1.1 Оставили папочки с файликами типа: Microsoft.Vsa.Vb.CodeDOMProcessor.tlb и DLLками может их удалить?

Читайте также:  AMD ahci bios rom что это

Последний раз редактировалось alexsadko68; 14.11.2008 в 15:31 . Причина: Добавлено

Аутентификация в ASP.NET

Written on 24 Сентября 2006 . Posted in ASP.NET

ОГЛАВЛЕНИЕ

ASP.NET исполняет web-приложения под учетной записью ASPNET. Это означает, что при выполнении задачи, не предусмотренной привилегиями пользователя (например, запись файла на диск), приложение получает отказ в доступе.
Идентификация пользователей применяется в тех случаях, когда нужно предоставить доступ к разделам web -приложения только для определенных пользователей. Это может быть Internet -магазины, форумы, закрытые разделы в корпоративных Intranet -сайтах и так далее.
Безопасность в приложениях ASP.NET основана на трех операциях:

  • Аутентификация — процесс идентификации пользователя для предоставления доступа к какому-то ресурсу приложения (разделу сайта, странице, базе данных, :). Аутентификация основана на проверке сведений о пользователе (например, имени и пароля);
  • Авторизация — процесс предоставления доступа пользователю на основе данных аутентификации;
  • Олицитворение (impersonalisation) — предоставление серверному процессу ASP.NET прав доступа клиента.

Существует три способа аутентификации пользователей в приложениях ASP.NET:

  • аутентификацияWindows — применяется для идентификации и авторизации пользователей в зависимости от привилегий учетной записи пользователя. Работает аналогично обычным механизмам сетевой безопасности Windows и выполняется контроллером домена;
  • аутентификацияForms — пользователь вводит логин и пароль в Web -форме, после чего авторизация происходит по списку пользователей, хранящемуся, например, в базе данных. Применяется на большинстве Internet-сайтов при регистрации в Inernet -магазинах, форумах, пр;
  • аутентификацияPassport — все пользователи имеют единое имя и пароль, используемые для сайтов, использующих данный тип авторизации. Пользователи регистрируются в службе Microsoft Passport.

Важно отметить, что аутентификация ASP.NET применяются только для web -форм (.aspx -файлы), контролов (.ascx -файды) и прочих ресурсов ASP.NET. HTML-файлы не входят в этот список. Для авторизации доступа к HTML -файлам нужно их зарегистрировать вручную!
Тип аутентификации указывается в конфигурационном файле Web.config :

По умолчанию применяется тип аутентификации Windows. Значение None имеет смысл устанавливать если используется собственная схема аутентификации или анонимный доступ (для повышения производительности).

Аутентификация Windows

Существует 4 типа аутентификации Windows : обычная ( basic ), краткая ( digest ), встроенная ( integated ) и на основе клиентских сертификатов SSL. Обычную и краткую аутентификацию применяют для идентификации имени пользователя и пароля, указываемом в диалоговом окне. Они хорошо работают в Internet , так как данные передаются по HTTP. Базовая аутентификация передает пароль и имя пользователя в кодировке Base 64, которую легко раскодировать. Для повышения безопасности можно использовать базовую аутентификацию совместно с SSL. Базовую аутентификация поддерживают большинство браузеров.
Краткая аутентификация является более безопасной, так как пароль шифруется по алгоритму MD 5. Она поддерживается браузерами Internet Explorer 5.0 и выше, либо на клиентской машине должен быть установлен. NET Framework. Кроме этого, учетные записи пользователей должны храниться в Active Directory.
Встроенная аутентификация применяется для идентификации учетных записей Windows и не может применяться в Internet , так как клиент и сервер должны пройти проверку контроллером домена. При этом пароли по сети не передаются, что увеличивает безопасность приложения. Этот тип аутентификации блокируется файрволами и работает только с Internet Explorer. Встроенная аутентификации немного медленнее, чем базовая или краткая.
Применение сертификатов SSL так же обычно применяется в Intranet , т.к. требует раздачи цифровых сертификатов. При этом типе аутентификации пользователям не нужно регистрироваться. Сертификаты можно сопоставить учетным записям пользователей в домене или Active Directory.

Для указания способа аутентификации нужно выполнить следующие действия:
1. Запустить диспетчер IIS
2. Щелкнуть правой кнопкой мыши по приложению и выбрать в контекстном меню Свойства.
3. В появившимся диалоге перейти на вкладку Безопасность каталога и нажать кнопку Изменить в разделе Анонимный доступ и проверка подлинности.

4. В диалоге Методы проверки подлинности указать тип аутентификации.

5. Указать права доступа к папке или отдельным файлам в папке Web -приложения. Обязательно нужно разрешить доступ для пользователя ASPNET.

Для поддержки URL-авторизации при Windows-аутентификации для защиты содержимого папок применяются Web.config файлы, находящиеся в этих папках. Структура файла такова (cимвол означает всех пользователей):

В данном случае разрешен доступ для пользователя DENIS и запрещен доступ для всех остальных. Вместо имени пользователя может быть и название роли, к которой принадлежат пользователи — администраторы, менеджеры, ::

Если мы хотим защитить он неаутентифицированных пользователей папку полностью (например, папку, содержащую формы для администрирования сайта), то нужно разместить в ней файл Web.config с таким содержанием (cимвол означает анонимных неавторизированных пользователей):

Если же мы хотим защитить только один файл (например, для подтверждения заказа в Internet -магазине), то в Web.config из корневой папки нужно добавить такие строки:

Приложение извлекает данные пользователей с помощью свойства Identity класса User. Это свойство возвращает объект, содержащий имя пользователя и роль.

bool authenticated = User.Identity.IsAuthenticated ;
string name = User.Identity.Name;
bool admin = User.IsInRole(«Admins»);

Forms-аутентификация

При использовании Forms-аутентификации запрос параметров регистрации (например, логина и пароля) происходит в web-форме. Регистрационная страница указывается в файле Web.config. При первом обращении к защищаемым страницам ASP.NET перенаправляет пользователя на страницу для ввода пароля. При успешной регистрации аутентификационные данные сохраняются в виде cookie и при повторном обращении к защищенным страницам регистрация не требуется.
Для того, чтобы использовать Forms-аутентификацию в файле Web.config в корневой папке приложения нужно указать страницу для ввода пароля:

При попытке просмотра защищенной страницы ASP.NET проверяет, есть ли аутентификационных cookie в запросе. Если cookie нет, то запрос перенаправляется на страницу для регистрации, если есть — ASP.NET дешифрует cookie и извлекает из него регистрационную информацию.

На форме находятся поля для ввода логина и пароля и флажок для сохраняемой регистрации. При нажатии кнопки «Войти» происходит поиск пользователя с таким логином и паролем. Если такой пользователь найден, вызывается функция FormsAuthentication.RedirectFromLoginPage (), в которой указывается идентификатор пользователя и флаг для сохраняемой регистрации. Если же нет — выводится сообщение об ошибке.

protected void btnLogin_Click(object sender, System.EventArgs e)
<
if (!IsValid) // проверяем правильность введенных данных
return;

OleDbConnection connection = GetDbConnection();

OleDbCommand command = new OleDbCommand(string.Format(«SELECT «, login, password), connection);

OleDbDataReader reader = command.ExecuteReader();
if (!reader.Read()) // пароль или логин неверны
<
lblError.Text = «Неверный пароль — попробуйте еще раз»;
return ;
>

string >
FormsAuthentication.RedirectFromLoginPage(id, chkbRememberLogin.Checked);
>
catch (OleDbException ex)
<
lblError.Text = «Ошибка базы данных»;
>
finally
<
connection.Close();
>
>

Аутентификации на основе ролей

Для аутентификации на основе ролей применяется атрибут roles тега allow. Например, если мы хотим запретить доступ всем, кроме пользователей из группы Admin , мы должны вставить такие строки в файл Web.config.

Затем при каждом запросе нужно связывать учетные записи пользователей и роли. Обычно это делается в обработчике события AuthenticateRequest в файле Global.asax.

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
<
HttpApplication appl = (HttpApplication)sender;

В коде проверяется тип аутентификации пользователя и то, что он уже зарегистрирован. Имя пользователя извлекается из cookie свойством Name. Таблица с именами пользователей и их ролями для повышения быстродействия была сохранена в объекте Application. Из этой таблицы и находим роль пользователя, которую сохраняем в объекте GenericPrincipal.

Читайте также:  Fast bios mode что это в биосе

Параметры аутентификации

Если второй параметр функции RedirectFromLoginPage () равен false , то время жизни сеансового cookie , генерируемого ASP.NET , равно по умолчанию 30 минутам. Для изменения этого интервала служит параметр timeout тега forms в файле Web.config. Установим время действия аутентификации в 3 часа.

Когда сеансовый cookie возвращается в следующих после регистрации запросах, он автоматически обновляется, если время жизни истекло больше чем на половину. Время же жизни сохраняемых cookie равно 50 годам.
Можно указать имя аутентификационных cookie , поместив его в атрибут name (имя по умолчанию — ASPXAUTH ):

По умолчанию аутентификацонные cookie шифруются и проверяются. Уровень защиты можно указать через атрибут protection , значение по умолчанию которого All. Значение Validation предписывает только проверку cookie , а значение Encript — только шифрование. Полностью отключить защиту можно указав значение None. Отключать защиту имеет смысл если данные передаются по протоколу HTTPS.

Сброс forms-аутентификации

Сброс регистрации можно увидеть на многих сайтах. Для сброса аутентификации применяется метод FormsAuthentication.SignOut (). Он устанавливает дату окончания действия cookie на прошедшее время и cookie автоматически уничтожается.

Аутентификация Passport

Для использования Passport аутентификации в web -приложении нужно установить Passport SDK. Passport SDK предоставляется бесплатно для тестирования, но для коммерческого использования на сайте необходимо приобретать лицензию.
При обращении к приложению с Passport аутентификацией проверяется наличие cookie с данные Passport. Если такого файла нет, пользователь перенаправляется на страницу для регистрации Passport.
Для включения данного режима аутентификации в файле Web. config нужно указать следующее:

Для обязательной регистрации всех посетителей сайта в разделе autorization нужно запретить доступ неавторизированным пользователем:

Что выбрать: ASP.NET или PHP

ASP.NET и PHP — две самые популярные технологии среди backend-разработчиков. Разбираем, чем они отличаются и какую лучше выбрать новичку.

Несмотря на то что на PHP написано 79% всех сайтов в интернете, есть и другие технологии, которые хорошо подходят для написания серверной части веб-приложений: Python, Java, Ruby, Node.JS.

В этой статье мы разобрали отличия PHP и его основного конкурента — ASP.NET, доля которого среди сайтов составляет 11,2%.

Пишет о разработке сайтов, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Чем отличаются
PHP и ASP.NET

PHP — это скриптовый интерпретируемый язык, созданный специально для разработки серверной части сайтов. На нём написаны такие сайты, как:

  • Facebook;
  • VK.com;
  • WordPress (и все сайты, созданные на нём);
  • YouTube;
  • Wikipedia и очень многое другое.

ASP.NET — это фреймворк для языков из семейства .NET (чаще всего C# или Visual Basic), который позволяет писать серверную часть сайтов. С его помощью созданы такие площадки, как:

  • Exchanger.com;
  • MSN.com;
  • Microsoft.com;
  • Dell.com;
  • Stackoverflow.com и другие.

Вот основные отличия этих технологий:

PHPASP.NET
Способ выполненияИнтерпретируется. При каждом обращении к скрипту он запускается, а после выполнения — закрывается. Поэтому на небольших проектах можно обойтись без сборки мусора.Компилируется. Сайт представляет собой приложение, которое создаёт новый поток при каждом обращении. Есть встроенная сборка мусора.

Простота изученияНизкий порог входа. Новичок сможет написать первый сайт на PHP за один день. (Конечно, если он уже знает HTML и CSS.)Высокий порог входа. Перед изучением самого ASP.NET нужно освоить какой-нибудь язык из семейства .NET.Объём кодаКомпактный.
На PHP можно быстро написать какой-нибудь блог, используя минимум кода.Чуть менее компактный.
Даже для простого вывода надписи «Hello, World!» требуется создать отдельный класс и запустить анонимный асинхронный метод. Несмотря на это, многие задачи можно выполнить с помощью лаконичного кода.Размер проектовПредпочтителен для небольших проектов. Поддержка кода на PHP сложнее, потому что в нём реже используется ООП и нет типизации (пока), а также сложно проводить отладку.Подходит для больших проектов. Небольшой сайт на ASP.NET уступает в скорости аналогичному на PHP. Однако он почти не проседает при большой нагрузке.
ТипизацияВ планахЕсть
Популярность и сообществоПопулярный.
Большое сообщество разработчиков, множество тем на форумах и Stack Overflow.
Менее популярный. Сообщество значительно меньше, чем у PHP, но это компенсируется большим количеством книг и очень подробной документацией.
ЗарплатыХорошие зарплаты на фрилансе и в столицах.
В регионах дела обстоят чуть хуже.
Зарплаты чуть выше. Это связано с более высокой квалификацией, поэтому PHP-разработчик с аналогичными навыками может зарабатывать не меньше.
РазвитиеБыстро развивается и меняется.
В новых версиях PHP планируют добавить типизацию, также постоянно появляются какие-то изменения, которые делают PHP лучше от версии к версии. Поэтому уже нельзя сказать, что PHP — это нестабильный и уязвимый язык для новичков.
Быстро развивается, но следует плану. Microsoft прислушивается к сообществу по поводу того, какие изменения вносить в язык. Но всё же компания не отходит от определённого пути. То есть ASP.NET-разработчик может быть уверен, что, проснувшись завтра, не обнаружит любимый фреймворк для создания сайтов изменившимся до неузнаваемости.
КоллекцииТолько массивы.
В PHP в качестве коллекций можно использовать только массивы, но они совмещают в себе особенности всех других коллекций. Например, можно указать строку в качестве ключа (аналог Dictionary в C#) или добавлять и удалять любые ячейки (аналог List). Это удобно для новичков, но усложняет поддержку и чтение кода.
Множество разных коллекций.
В C# и Visual Basic очень широкие возможности по работе с коллекциями: списки, очереди, словари, карты и так далее. Работа с ними становится ещё более мощной благодаря обобщённым коллекциям.
Асинхронность и многопоточностьМногопоточность не нужна.
Так как PHP запускает отдельный экземпляр скрипта при каждом обращении к нему, многопоточность и асинхронность особо не нужны — всё и так отлично работает.
Широкие возможности.
Языки семейства .NET позволяют эффективно работать с несколькими потоками и выполнять одновременно различные задачи. Например, при каждом обращении к сайту создаётся асинхронный поток.
РазмещениеМного дешёвых серверов.
Это связано с популярностью PHP. Практически все хостинги предоставляют возможность использовать PHP-скрипты без дополнительной настройки — просто загрузите ваш сайт, и он заработает.
Серверы подороже. ASP.NET менее популярен, поэтому и хостингов значительно меньше, а стоят они дороже.

Отдельно стоит сказать, что оба языка активно развиваются, поэтому некоторые различия перестанут быть актуальными уже в скором времени. Например, в PHP собираются ввести типизацию, а всё семейство .NET переходит в open source с поддержкой кроссплатформенности. Поэтому PHP может стать сложнее, а ASP.NET — популярнее и доступнее.

Также стоит отметить значительные различия в синтаксисе. Например, вот как в PHP выводится текст:

Ссылка на основную публикацию
Adblock
detector