Muszę zbudować małą aplikację internetową, aby firma mogła utrzymywać swoje dane biznesowe ... Tylko osoby w firmie będą z niej korzystać, ale planujemy udostępnić ją w domenie publicznej, aby pracownicy mogli łączyć się z aplikacją z różnych lokalizacji . (Do tej pory tworzyłem aplikacje internetowe, które są hostowane tylko wewnętrznie)
Zastanawiam się, czy wystarczy mi bezpieczne połączenie (https), czy tylko uwierzytelnianie formularzy.
Jeśli powiesz https, mam kilka pytań:
- Co powinienem zrobić, aby przygotować moją stronę na https. (Czy muszę zmienić kod / konfigurację)
- Czy SSL i https to jedno i to samo ...
- Czy muszę się z kimś ubiegać, aby uzyskać licencję czy coś.
- Czy muszę zabezpieczyć wszystkie moje strony, czy tylko stronę logowania ...
Szukałem odpowiedzi w Internecie, ale nie byłem w stanie uzyskać wszystkich tych punktów ... Pomocny byłby również dowolny dokument lub inne źródła ...
Jeśli potrzebujesz więcej informacji, nie wahaj się zapytać.
Dzięki
- Radża
asp.net
ssl
https
asp.net-2.0
Król
źródło
źródło
Odpowiedzi:
Powinieneś pamiętać o najlepszych praktykach dotyczących bezpiecznego kodowania (tutaj jest dobre wprowadzenie: http://www.owasp.org/index.php/Secure_Coding_Principles ), w przeciwnym razie wszystko, czego potrzebujesz, to poprawnie skonfigurowany certyfikat SSL.
Prawie tak.
Certyfikat SSL można kupić w urzędzie certyfikacji lub użyć certyfikatu z podpisem własnym. Te, które można kupić, różnią się bardzo ceną - od 10 do setek dolarów rocznie. Będziesz potrzebować jednego z nich, jeśli na przykład założysz sklep internetowy. Certyfikaty z podpisem własnym są realną opcją dla aplikacji wewnętrznej. Możesz również użyć jednego z nich do programowania. Oto dobry samouczek dotyczący konfigurowania certyfikatu z podpisem własnym dla usług IIS: Włączanie protokołu SSL w usługach IIS 7.0 przy użyciu certyfikatów z podpisem własnym
Używaj protokołu HTTPS do wszystkiego, nie tylko do pierwszego logowania użytkownika. Nie będzie to zbyt duże obciążenie i będzie oznaczać, że dane, które użytkownicy wysyłają / odbierają z Twojej zdalnie hostowanej aplikacji, nie mogą być odczytane przez strony zewnętrzne, jeśli zostaną przechwycone. Nawet Gmail teraz domyślnie włącza HTTPS.
źródło
Jakie dane biznesowe ? Tajemnice handlowe lub po prostu rzeczy, których nie chcą, aby ludzie widzieli, ale gdyby się wydostały, nie byłoby to nic wielkiego? Jeśli mówimy o tajemnicach handlowych, informacjach finansowych, informacjach o klientach i rzeczach, które są ogólnie poufne. Więc nawet nie idź tą drogą.
Zawsze korzystaj z bezpiecznego połączenia.
Tak. Cóż, może nie. Możesz poprosić o to eksperta.
W większości tak. Ludzie zwykle nazywają te rzeczy tym samym.
Prawdopodobnie chcesz, aby Twój certyfikat był podpisany przez urząd certyfikacji. Będzie to kosztować Ciebie lub Twojego klienta trochę pieniędzy.
Używaj protokołu HTTPS w całym tekście. Wydajność zwykle nie stanowi problemu, jeśli witryna jest przeznaczona dla użytkowników wewnętrznych.
Zacznij tutaj, aby uzyskać wskazówki: http://www.owasp.org/index.php/Category:OWASP_Guide_Project
Pamiętaj, że SSL to malutki element zapewniający bezpieczeństwo Twojej witryny internetowej, gdy jest ona dostępna z internetu. Nie zapobiega większości rodzajów włamań.
źródło
Myślę, że mylisz się z uwierzytelnianiem witryny i SSL.
Jeśli chcesz, aby Twoja witryna korzystała z protokołu SSL, musisz zainstalować certyfikat SSL na swoim serwerze sieciowym. Możesz kupić sobie certyfikat w jednym z miejsc, takich jak Symantec itp. Certyfikat zawierałby parę kluczy publiczny / prywatny oraz inne rzeczy.
Nie musisz nic robić w swoim kodzie źródłowym i nadal możesz nadal korzystać z uwierzytelniania formularza (lub dowolnego innego) w swojej witrynie. Po prostu każda komunikacja danych, która ma miejsce między serwerem WWW a klientem, będzie zaszyfrowana i podpisana za pomocą Twojego certyfikatu. Użytkownicy korzystaliby z bezpiecznego protokołu HTTP (https: //), aby uzyskać dostęp do Twojej witryny.
Zobacz to, aby uzyskać więcej informacji -> http://en.wikipedia.org/wiki/Transport_Layer_Security
źródło
W przypadku danych biznesowych, jeśli dane są prywatne, użyłbym bezpiecznego połączenia, w przeciwnym razie wystarczy uwierzytelnienie formularzy.
Jeśli zdecydujesz się korzystać z bezpiecznego połączenia, pamiętaj, że nie mam doświadczenia w zabezpieczaniu witryn internetowych, po prostu przypominam sobie to, co napotkałem podczas własnego doświadczenia. Jeśli i tak się mylę, nie krępuj się mnie poprawić.
Aby włączyć SSL (Secure Sockets Layer) dla swojej witryny, musisz ustawić certyfikat, kod lub konfiguracja nie zostanie zmieniona.
Włączyłem SSL dla wewnętrznego serwera internetowego, używając OpenSSL i ActivePerl z tego samouczka online . Jeśli jest to używane dla większej liczby odbiorców (moja publiczność była mniejsza niż 10 osób) i znajduje się w domenie publicznej, sugeruję poszukiwanie profesjonalnych alternatyw.
Niezupełnie, ale idą w parze! SSL zapewnia, że dane są szyfrowane i odszyfrowywane w obie strony podczas przeglądania witryny,
https
to identyfikator URI, który jest potrzebny do uzyskania dostępu do bezpiecznej witryny internetowej. Zauważysz, że podczas próby uzyskania dostępuhttp://secure.mydomain.com
wyświetla komunikat o błędzie.Nie musisz uzyskiwać licencji, a raczej certyfikat. Możesz przyjrzeć się firmom oferującym profesjonalne usługi z zabezpieczaniem stron internetowych, na przykład VeriSign .
Gdy Twój certyfikat zostanie włączony dla
mydomain.com
każdej strony, która podlega,*.mydomain.com
będzie zabezpieczona.źródło
Czy muszę zabezpieczyć wszystkie moje strony, czy tylko stronę logowania ...
Po prostu zachowaj stronę logowania pod https
Dzięki temu przeglądanie innych stron nie będzie obciążone. Warunkiem jest podanie prawidłowych ustawień uwierzytelniania w konfiguracji sieciowej. Ma to na celu zapewnienie, że niezalogowani użytkownicy nie będą mogli przeglądać stron wymagających uwierzytelnienia.
źródło
@balalakshmi wspomniał o prawidłowych ustawieniach uwierzytelniania. Uwierzytelnianie to tylko połowa problemu, druga połowa to autoryzacja.
Jeśli używasz uwierzytelniania za pomocą formularzy i standardowych formantów, na przykład
<asp:Login>
musisz wykonać kilka czynności, aby mieć pewność, że tylko uwierzytelnieni użytkownicy mają dostęp do zabezpieczonych stron.W
web.config
, w<system.web>
sekcji musisz domyślnie wyłączyć dostęp anonimowy:<authorization> <deny users="?" /> </authorization>
Wszelkie strony, do których będzie uzyskiwany dostęp anonimowo (takie jak sama strona Login.aspx), będą musiały mieć nadpisanie, które ponownie zezwala na dostęp anonimowy. Wymaga to
<location>
element, i musi być umieszczony na<configuration>
poziomie ( na zewnątrz w<system.web>
przekroju), w następujący sposób:<!-- Anonymous files --> <location path="Login.aspx"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
Pamiętaj, że musisz również zezwolić na anonimowy dostęp do wszystkich arkuszy stylów lub skryptów używanych na anonimowych stronach:
<!-- Anonymous folders --> <location path="styles"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
Należy pamiętać, że
path
atrybut lokalizacji jest powiązany zweb.config
folderem i nie może mieć~/
prefiksu, w przeciwieństwie do większości innych atrybutów konfiguracji typu ścieżki.źródło
Spróbuj utworzyć katalog rozruchowy w PHP, jak w
<?PHP $ip = $_SERVER['REMOTE_ADDR']; $privacy = ['BOOTSTRAP_CONFIG']; $shell = ['BOOTSTRAP_OUTPUT']; enter code here if $ip == $privacy { function $privacy int $ip = "https://"; } endif { echo $shell } ?>
To głównie to!
źródło