none
Segurança em Asp.net MVC RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Gostaria de saber o que devo levar em consideração, no que diz respeito a segurança, em um ambiente asp.net mvc. Sou desenvolvedor porém ainda sou leigo com relação a segurança de sistemas web. Devo utilizar certificados como SSL? E também protocolo httpS ? Se sim, como eu implementaria isso em asp.net MVC?

    Importante dizer também que todo trafego entre cliente e servidor está sendo feito utilizando AJAX posts. Isso é seguro?

    Obrigado!

    segunda-feira, 29 de setembro de 2014 17:16

Respostas

  • Olá,

    Em relação ao uso de ajax para login deve tomar um cuidado de não deixar a lógica de autorização no client, como fez: decidindo para qual página o usuário será redirecionado, por exemplo. Sobre o uso de SSL, segue um link do passo a passo:

    http://azure.microsoft.com/pt-br/documentation/articles/web-sites-configure-ssl-certificate/

    Marque como útil, se lhe ajudei.

    • Sugerido como Resposta Deric Ferreira quinta-feira, 16 de outubro de 2014 16:42
    • Marcado como Resposta rafa_webdeveloper quinta-feira, 23 de outubro de 2014 13:05
    quinta-feira, 16 de outubro de 2014 16:42
  • Olá,

    Não teria problema.

    Para redirecionar para uma action no mesmo controller:

                return RedirectToAction("NomeDaAction");


    Para redirecionar para uma action de outro controller:

      
              return RedirectToAction("ActionName", "ControllerName");

    Marque como resposta se foi útiL!

    • Sugerido como Resposta Deric Ferreira quinta-feira, 23 de outubro de 2014 13:19
    • Marcado como Resposta rafa_webdeveloper sexta-feira, 24 de outubro de 2014 16:00
    quinta-feira, 23 de outubro de 2014 13:19

Todas as Respostas

  • Olá,

    Em primeiro lugar, qual será a forma de uso? Internet ou Intranet? Primordial que escolha um tipo de autenticação e a defina no web.config (tag authentication, atributo mode) e também anote seus controllers com o atributo Authorize. Quando existe troca de informações sensíveis, como dados de pagamentos, etc é recomendável o uso de SSL, mas isso é uma configuração no IIS e não na sua aplicação.

    O uso de AJAX não torna sua aplicação insegura pois, um request ajax não difere em nada de um request síncrono.

    Marque como útil se esta resposta lhe ajudou.

    quarta-feira, 15 de outubro de 2014 17:50
  • Olá Deric, a forma de uso será Internet. Fiquei na dúvida se a autenticação não ficaria insegura utilizando ajax, pois o javascript fica no lado do cliente certo? Existiria alguma forma de alterar o código do javascript? Porque olha, dá uma olhada no código de login, por exemplo:

    $('#formlogin').submit(function (e) {
                    //e.preventDefault();
                    var usuariologin = { email: $('#txtemail').val(), senha: $('#txtpassword').val() };
                    $.ajax({
    
                        type: "POST",
                        async: false,
                        url: "/login/login",
                        data: JSON.stringify(usuariologin),
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        //beforeSend: function(){
                        //    alert("Estou indo");
                        //},
                        success: function (data) {
    
                            if (data.Retorno == "OK") {
                                //alert("teste");
                                e.preventDefault();
                                document.location.href = "/Home/";
                            }
                            else if (data.Retorno == "user_inactive") {
                                e.preventDefault();
                                document.location.href = "/Aviso/Confirmacao/";
                            }
                            else {
                                alert("login incorreto");
                            }
                        },
                        error: function (jqXHR, exception) {
                            //if (jqXHR.status === 0) {
                            //    alert('Not connect.\n Verify Network.');
                            //} else if (jqXHR.status == 404) {
                            //    alert('Requested page not found. [404]');
                            //} else if (jqXHR.status == 500) {
                            //    alert('Internal Server Error [500].');
                            //} else if (exception === 'parsererror') {
                            //    alert('Requested JSON parse failed.');
                            //} else if (exception === 'timeout') {
                            //    alert('Time out error.');
                            //} else if (exception === 'abort') {
                            //    alert('Ajax request aborted.');
                            //} else {
                            //    alert('Uncaught Error.\n' + jqXHR.responseText);
                            //}
                        }
                    });
    
                });

    Existe algo de errado com esse código, ou algo que cause insegurança?

    Outra coisa, em relação ao SSL, não tenho acesso ao IIS e meu site está hospedado no windows azure, como eu faria pra configurar nesse caso?

    Obrigado!

    quinta-feira, 16 de outubro de 2014 16:30
  • Olá,

    Em relação ao uso de ajax para login deve tomar um cuidado de não deixar a lógica de autorização no client, como fez: decidindo para qual página o usuário será redirecionado, por exemplo. Sobre o uso de SSL, segue um link do passo a passo:

    http://azure.microsoft.com/pt-br/documentation/articles/web-sites-configure-ssl-certificate/

    Marque como útil, se lhe ajudei.

    • Sugerido como Resposta Deric Ferreira quinta-feira, 16 de outubro de 2014 16:42
    • Marcado como Resposta rafa_webdeveloper quinta-feira, 23 de outubro de 2014 13:05
    quinta-feira, 16 de outubro de 2014 16:42
  • Obrigado Deric,

    Só me diga mais uma coisa, se o usuário é redirecionado no client porém não tem sessão, não teria problema certo?

    Além disso, poderia me dar uma dica de como fazer o redirect pelo controller do asp.net mvc?

    quinta-feira, 23 de outubro de 2014 13:06
  • Olá,

    Não teria problema.

    Para redirecionar para uma action no mesmo controller:

                return RedirectToAction("NomeDaAction");


    Para redirecionar para uma action de outro controller:

      
              return RedirectToAction("ActionName", "ControllerName");

    Marque como resposta se foi útiL!

    • Sugerido como Resposta Deric Ferreira quinta-feira, 23 de outubro de 2014 13:19
    • Marcado como Resposta rafa_webdeveloper sexta-feira, 24 de outubro de 2014 16:00
    quinta-feira, 23 de outubro de 2014 13:19