Como atopar + parar os ataques de inxección SQL

13 de novembro de 2009 por AcidRaZor · Deixe un comentario
Arquivo en: . Net , ASP Classic , Aloxamento , IIS 6.0 , Programación 101 , SQL Server

Hai unha morea de cousas aí fóra, os ataques de inxección SQL sobre, pero non hai moito que pode axudar a descubrir como deixar estes ataques ocorran.

Primeiro, imos falar sobre o que é un SQL Injection Attack realmente é. Algunhas persoas pensan que é un virus do tipo, que está "dentro do seu sitio." Non o caso. Estes son os ataques bot por outro virus de ordenadores infectados. Eles simplemente usan unha visión de forza bruta de explotación URLs que levan POST / get insumos e tentar enviar os seus propios datos a eles.

Entón, como seguir estes baixo e detê-los? Para sitios powered by Microsoft IIS, aquí están as nosas suxestións:

  1. Olle para o seu IIS rexistros
    Tente procurar a palabra "declarar" ou "executar". Se foi alcanzado por un ataque, estes máis que probablemente aparecen nos rexistros do IIS - polo menos para calquera ataque que foi tentada a usar "get" posts. Se vostede atopa algunha casos de "declarar" ou "Executar" estas son as páxinas no inicio.
  2. Use unha conexión de base de datos centralizado manipulación
    Simple, fai un arquivo centralizado (por exemplo, connection.asp se está a usar ASP ) Que se encarga de todo o seu acceso á DB. Deste xeito, é máis fácil para asegurarse que está codificando SQL súas páxinas. Pode facilmente consultas de procura de "declarar" e "Executar" e deter os ataques mortos nas súas camiños.
  3. Implementar unha solución ampla web
    Se está executando o seu propio servidor, recomendamos ISAPI_Rewrite de HeliconTech ( http://www.helicontech.com/isapi_rewrite ). Este é un filtro ISAPI que permite que fai unha variedade de cousas, incluída a dixitalización de datos URL. Isto parar 99% dos ataques, sen cambiar calquera código no seu site! \
  4. Non use nunca "sa" como o usuario da base de datos, crear un usuario para a base de datos está a traballar e despois de eliminar os privilexios para ler o DBO mestre. Isto impide o dianteiro de "sniffing" súa estrutura de base de datos, sen embargo, estes ataques teñen evolucionado de forma que sanitized gardados ataques procedemento baseado ocorrer mesmo con estes tipos de seguridade no lugar. Vexa http://www.ngssoftware.com/papers/more_advanced_sql_injection.pdf para obter máis información sobre esta e outras ideas para evitar ataques de inxección SQL.

Se xa estivo coçando a cabeza se pregunta onde o escape na súa programación é (ou ter tido máis dun proxecto de alguén), entón o mellor xeito de determinar, a través de páxina que o ataque sucedeu é que, comprobando os rexistros do IIS.

Existen moitos guións dispoñibles para limpar, pero a mellor Consello é a de copia de seguridade de hora en hora, e seguir as mellores prácticas (algúns dos cales eu destaque aquí). Boa sorte

Como configurar un Windows 2003 Web Server

04 de marco de 2009 por AcidRaZor · Deixe un comentario
Arquivo en: . Net , ASP Classic , Aloxamento , IIS 6.0 , SQL Server

Toda vez que unha caixa de configuración W2K3 como un servidor web que faga o seguinte

Fase 1
Copia 1,1 i386 para C: \
1,2 configurar os permisos en todas as particións de Windows
- Deixar
Administradores (completo)
System (completo)
Eliminar Outras vendas
Administrador 1,3 Renomear
1,4 Machine Renomear
1,5 reinicio
1,6 Instalar actualizacións de Windows (non o. Frameworks Net)
Engadir 1,7 IP para TCP / IP
Engadir 1,8 sufixo DNS para TCP / IP (Só se é necesario)
1,9 Tracker Desactivar o Shutdown Event
1,10 reinicio

Fase 2
2,1 Instalar ferramentas de soporte
2.2 Instalar Tools Resource Kit
2.3 Instalar KB908521 (Non é necesario se w2k3 SP2)
Instala 2,4 SNMP
Instala 2,5 SNMP Informante
2,6 Configure o Windows Time
2,7 reinicio

Fase 3
Instala 3,1 R2 (Só se queres tamén)
3,2 reinicio

Fase 4
4.1 Configuración de Actualizacións automáticas
4,2 DNS Setup MS
4,3 Set TCP / IP para DNS local
4,4 Fix MSTDC

Etapa 5
5.1 Instalar IIS
Permitir 5,2 Direct Metabase Edit
5,3 Set IIS IP para ser oída en
Reinicie o IIS 5,4
5,5 Set Documentos por defecto
5,6 W3SVC Set logs Params
Instala 5,7 FastCGI
5,8 Instalar o PHP 5.1 e 5.2 (Modo FastCGI)
5,9 Instalar Zend optimizacións (edición de 32 bits)
Instala 5,10 Perl
Instala 5,11 Python
5,12 Configure IIS SMTP
5,13 Socket Pooling IIS SMTP Desactivar
- Http: / / www.isaserver.org / tutorials / i ... etpooling.html
5,14 reinicio

Etapa 6
6,1 Instalar. Net Framework 2.0
6,2 Instalar. Net Framework 2.0 SP1
6,3 Instalar. Net AJAX 1.0
6,4 Instalar. Net Framework 3.5 (Asegúrese de utilizar o instalador sen SP1)
6,5 Instalar. Net Framework 3.5 SP1 (só se está a usar Helm 4.1)
6,6 reinicio

Paso 7
Instala 7,1 ISAPI_Rewrite
Instala 7,2 JMail.NET
Instala 7,3 W3JMail
Instala 7,4 Block Hotlink
7.5 instalar o IIS Contrasinal
7,6 Instalar Winrar
Instala 7,7 persiste ASP Email
Instala 7,8 persiste ASP jpeg
Instala 7,9 persiste ASP Upload
7,10 reinicio

Por suposto, se a caixa non vai ser un servidor DNS que non ía instalar MSDNS, instrucións se aplica a ambas 32bit e 64bit w2k3. Non vou explicar cada paso en detalle a información é só para que poida ver o fin que facemos as cousas. Foi moi ben probado e nós non tivemos problemas

A cada paso que probar todo así que imos instalar asegúrese PHP está funcionando correctamente antes de continuar co seguinte paso. Se necesita instalar o MySQL ou MSSQL eu faría iso no Paso 8. Unha vez que todo está configurado instalar Helm dun control remoto ou control.

Chamando un sitio Service dende o ASP clásico

14 de febreiro de 2009 por AcidRaZor · Deixe un comentario
Arquivo en: Classic ASP , Programación 101
  1
 2
 3
 4
 5
 6
 7
 8
 WebService,Data ) Dim SoapRequest Set SoapRequest = Server . CreateObject ( "Msxml2.XMLHTTP" ) SoapRequest. Open "POST" ,WebService , False SoapRequest. setRequestHeader "Content-Type" , "application/x-www-form-urlencoded" SoapRequest. Send Data sendToWebService = SoapRequest. responseText Set SoapRequest = Nothing End Function Función sendToWebService (WebService, Data) Din SoapRequest Set SoapRequest = Server. CreateObject ("Msxml2.XMLHTTP") SoapRequest. Abre "POST", WebService, False SoapRequest. SetRequestHeader Content-Type "," application/x-www-form- urlencoded "SoapRequest. sendToWebService Enviar Datos = SoapRequest. responseText Set SoapRequest = Nothing End Función 

Datos quedaría así:

 1 
  and the WebService would look like : WebService = "http://" & trim ( Request . ServerVariables ( "SERVER_NAME" ) ) & "service/service.asmx/webmethodfunction" Data = "firstparameter = yourdata & secondparameter = yourdata" eo WebService sería coma: WebService = "http://" & Trim (Request. ServerVariables ("SERVER_NAME")) & "/ servizo Service.asmx / webmethodfunction" 

Substitúe webmethodfunction co nome da función e Bob é o seu tío.

A diferenza entre un sub e unha función

3 de febreiro de 2009 por AcidRaZor · Deixe un comentario
Arquivo en: Classic ASP , Programación 101

Durante os últimos anos no campo de programación que eu xa vin (Junior caras máis expertos) cometen o erro sinxelo de utilizar a función para todo. Algúns ata usaron Sub ... Eu sospeitoso que é porque eles non coñecen nada mellor.

True, hoxe coa chegada do. Net e linguaxes PHP que instilar (ou forza para que o asunto) que use a sintaxe correcta para cada momento, sinto-me como hobby, que non terán, necesariamente, ir á escola para aprender iso, non pode ser clued up.

Simplemente afirmou. unha función retorna un valor, unha Sub non.

Un exemplo disto no Classic ASP:

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 myVariable = "AcidRaZor" If checkIfTrue ( myVariable ) Then Response . Write "This is indeed true" End If Function checkIfTrue ( var ) Dim ret : ret = false If var = "AcidRaZor" Then return = true End If checkIfTrue = ret End Function Din myVariable: myVariable = "AcidRaZor" Se checkIfTrue myVariable () then response. Write "Isto é verdade" End Función Se checkIfTrue (var) Din ret: ret = false se var = "AcidRaZor" Entón retorno = true End Se checkIfTrue = ret End Función 

Un exemplo dunha Sub sería:

  1
 2
 3
 4
 5
 6
 7
 myVariable = "AcidRaZor" saveThisName myVariable Sub saveThisName ( var ) Session ( "nameSaved" ) = var End Sub Din myVariable: myVariable = "AcidRaZor« saveThisName saveThisName Sub myVariable (var) Session ("nameSaved) = var End Sub 

Isto repercuten (e esperamos que responde a algunhas das súas preguntas) para as novas versións. Net e ademais. Voltar as variables da función de procesamento de datos ou só co Sub. Logo, o alumno ha facer o profesor :)

Patróns de Data - ¿Que todo programador debería saber

1 de febreiro de 2009 por AcidRaZor · Deixe un comentario
Arquivo en: Classic ASP , Programación 101 , SQL Server

Hai uns anos cando comece a programar miña primeira tarefa foi a de código dun sistema de intranet capaz de seguir as reunións e algúns funcionarios fixeron tarefas ao longo do día, en base a un calendario. Isto foi antes de saber que o poder de SQL Server 2000 (e agora 2005/2008) tiña e como era doado traballar dentro deses sistemas.

MS Access (que cambiou moito desde 1999) tiña un fallo. El sempre mantivo os formatos de data en dd / mm / aaaa (América é o "mundo" hahahahaha), para iso fixo o meu traballo cada vez máis difícil tentar xestione as datas nun momento Sur africano base (dd / mm / aaaa)

Loitei moito para entender o acto desavergonhado de que o MS Access masacrado insumos miña data, pero eu non podía axudar, pero creo que iso non pode ocorrer a todos os programadores!

Despois de moita dor no corazón e moitas noites sen durmir, finalmente atopei a bala de prata para o lobisomem que foi o MS Access (e outros servidores en todo o mundo rodando en axustes de fuso horario diferente)

aaaa-dd-MMM! Traducido en: 01-Xan-1999, por exemplo, pode introducir calquera data, co 100% de garantía que o seu sono garantido. Este formato de data universal ha traballar en calquera (si, leu! Calquera base de datos) coñecidos polo home e, aínda que os datos en bruto pode ser parecido 1999/09/02 na base de datos, el sempre ha inserir a data correcta en formato correcto na a base de datos, independentemente do fuso horario que o servidor está configurado en!

exampes Classic ASP de lectura fora de data é a seguinte:

  1
 date ( ) ) & amp ; "-" & amp ; Left ( MonthName ( Month ( Date ( ) ) ) , 3 ) & amp ; "-" & amp ; Year ( Date ( ) ) Day (Date ()) & amp; "-" & amp; Esquerda (MonthName (Month (Date ())), 3) & amp; "-" & amp; Year (Date ()) 

SQL Server exemplo usaría DateName en vez de MonthName (que pode ser abreviado sen a esquerda () función que tiña para usar en ASP) e, por suposto, (data) = getdate () no SQL Server ;)

Eu sempre recomendo a lectura para fóra da base de datos (cando é posible) con procedementos almacenados en formato correcto para comezar. Pero cómpre a decidir como usar esa xoia do coñecemento que eu só xogado en ti. E se está lendo este pensamento "Pero eu xa sabía!", Entón pense de novo. Desafortunadamente, en 2009, aínda hai moito algúns programadores incapaces de comprender conceptos simples, como fusos horarios e manipulación de data.

Lembre nenos. Cometer erros cando aínda está de novo no xogo é unha cousa. Brandi un currículo experiencia (currículo), de 3 anos +, e aínda está facendo estes erros é simplemente mal ... escolleu un campo onde tes que evolucionar e buscar respostas constantemente, non estagna ... Vou assombra seus soños se fai :)

SEO Powered by Platinum SEO de Techblissonline