Owasp Ejemplos C#
Owasp Ejemplos C#
Owasp Ejemplos C#
try
{
connection.Open();
Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
A2:2017-Broken Authentication
Las funciones de la aplicación relacionadas con la autenticación y la
administración de sesiones a menudo se implementan incorrectamente, lo que
permite a los atacantes comprometer contraseñas, claves o tokens de sesión, o
explotar otras fallas de implementación para asumir las identidades de otros
usuarios de forma temporal o permanente.
Practicar el uso de asp.net miembro de la nave y el proveedor de la función
ayudará a reducir los ataques.
Usar el proveedor de membresía de Asp.net y el proveedor de roles
<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
<AnonymousTemplate>
[ <a href="~/Account/Login.aspx" id="HeadLoginStatus" runat="server">Log
In</a> ]
</AnonymousTemplate>
<LoggedInTemplate>
Welcome
<span class="bold">
<asp:LoginName ID="HeadLoginName" runat="server" />
</span>
! [ <asp:LoginStatus ID="HeadLoginStatus" runat="server"
LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/" /> ]
</LoggedInTemplate>
</asp:LoginView>
cambiar a:
protected void Foo(object o)
{
string strData = "Data" + o.ToString() ;
validateStrData(strData);
lblData.Text = strData;
}
private void validateStrData(string strData)
{
//some validating logic
}
A4:2017-XML External Entities (XXE)
Muchos procesadores XML antiguos o mal configurados evalúan referencias de
entidades externas dentro de documentos XML. Se pueden usar entidades
externas para divulgar archivos internos mediante el controlador de URI de
archivos, recursos compartidos de archivos internos, escaneo de puertos
internos, ejecución remota de código y ataques de denegación de servicio.
[HttpGet("order/{id}")]
[Authorize]
public IActionResult GetOrder(int id)
{
Order order = _orderRepository.GetById(id);
return Ok(order);
}
Lo modificamos a:
[HttpGet("order/{id}")]
[Authorize]
public IActionResult GetOrder(int id)
{
var loggedInUser = HttpContext.User;
var customerId = loggedInUser.Claims.FirstOrDefault(x => x.Type ==
ClaimTypes.NameIdentifier).Value;
return Ok(order);
}
A6:2017-Security Misconfiguration
La mala configuración de la seguridad es el problema más común. Esto suele
ser el resultado de configuraciones predeterminadas inseguras,
configuraciones incompletas o ad hoc, almacenamiento en la nube abierta,
encabezados HTTP mal configurados y mensajes de error detallados que
contienen información confidencial. No solo todos los sistemas operativos,
marcos, bibliotecas y aplicaciones deben estar configurados de manera segura,
sino que deben parcharse / actualizarse de manera oportuna.
A8:2017-Insecure Deserialization
La deserialización insegura a menudo conduce a la ejecución remota de
código. Incluso si las fallas de deserialización no dan como resultado la
ejecución remota de código, se pueden usar para realizar ataques, incluidos
ataques de repetición, ataques de inyección y ataques de escalada de
privilegios.
Se está utilizando JSON.Net, asegúrese de que TypeNameHandling solo esté
establecido en Ninguno.
TypeNameHandling = TypeNameHandling.None
O emplear
using the DataContractSerializer or XmlSerializer siempre que sea posible
A10:2017-Insufficient Logging&Monitoring
El registro y monitoreo insuficientes, junto con la integración faltante o ineficaz
con la respuesta a incidentes, permite a los atacantes atacar aún más los
sistemas, mantener la persistencia, girar a más sistemas y manipular, extraer o
destruir datos. La mayoría de los estudios de incumplimiento muestran que el
tiempo para detectar un incumplimiento es de más de 200 días, generalmente
detectado por partes externas en lugar de procesos internos o monitoreo.
1. Abra el Visor de eventos (Herramientas administrativas -> Visor de eventos)
2. Expandir los "Registros de aplicación y servicio"
3. Expanda "Microsoft", y expanda "Windows"
4. Expanda "Configuración de IIS", haga clic con el botón derecho en
"Operativo" y seleccione "Activar registro"
O tambien
wevtutil sl Microsoft-IIS-Configuration/Operational /e:true