Registro de cambios
[0.1.4] - 2024-02-19 - 2024-08-22
Agregado
- Se ha implementado un nuevo método, para determinar si el navegador se está ejecutando en modo incógnito o no.
Cambiado
Eliminado
[0.1.3] - 2023-12-18 - 2024-02-19
Agregado
- Añadidas cookies para una mejor identificación del dispositivo
Cambiado
- Detección de navegador mejorada (Opera y Brave)
Eliminado
[0.1.2] - 2023-10-26 - 2023-12-18
Agregado
Cambiado
- Mejora gestión de errores
- Mejora detección versiones de windows
Eliminado
[0.1.1] - 2023-07-21 - 2023-10-26
Agregado
Cambiado
- SDK ofuscada.
Eliminado
[0.1.0] - 2023-02-22 - 2023-07-21
Agregado
- Primera versión del WEB SDK
Cambiado
Eliminado
Configuración
¿Qué es el SDK Web?
LBFraud web SDK es la pieza que permite integrar Ironchip LBFraud en tu página web. Usandolo, Ironchip es capaz de evaluar si el dispositivo y el entorno son seguros para operar en la web. Para añadir el SDK en tu web solo hay que seguir los siguientes pasos:.
Browser | Minimum Tested Version |
---|---|
Chrome | 68.0.3440.91 |
Firefox | 60.0 |
Mobile Safari | 12.1.2 |
Brave | 119.0.0.0 |
Edge | 97.0.1072.62 |
Opera | 95.0.0.0 |
Chromium | 76.0.3809.100 |
Chrome WebView | 84.0.4147.89 |
GSA (Google Search App) | 130.0.337455237 |
DuckDuckGo | 5 |
Silk | 108.7.2 |
Samsung Browser | 17.0 |
PaleMoon | 32.2.0 |
Avast Secure Browser | 109.0.24252.121 |
Huawei Browser | 12.1.3.304 |
MIUI Browser | 10.9.8 |
Yandex | 24.9.1.56.00 |
Whale | 3.4.5.2 |
Integración JavaScript
Esta integracion se puede realizar en un archivo JavaScript o directamente en el HTML entre los tags script. Recomendamos utilizarnos en JavaScript y ofuscarlo siempre.
Añade el paquete de Node.js:
npm i https://github.com/Ironchip-Security/Ironchip-Fraud-Detection-Web-SDK/releases/download/0.1.4/ironchip-fraud-detection-web-sdk-0.1.4.tgz
Importa el paquete:
//Importa la libreria de lbfraud
import { LBFraudSDK,LBFraudSDKEnvironment } from 'ironchip-fraud-detection-web-sdk';
Después, con el SDK importado tienes que inicializar el cliente. Por favor, asegurate de tener tu API-Key y el entorno en el que vas a trabajar a mano. Por defecto el entorno seleccionado es el de Producción.
Vamos a inicializar el SDK (Solo acepta un único entorno como parámetro de entrada):
const client = new LBFraudSDK({
apiKey: 'api-key',
environment: LBFraudSDKEnvironment.Development,
LBFraudSDKEnvironment.Testing,
LBFraudSDKEnvironment.Production,
});
Recomendamos que esta parte del código vaya ofuscada, ya que contiene el API-Key.
Con el cliente inicializado para hacer transacciones solo tienes que llamar al metodo.
Al metodo sendTransaction tienes que pasarle como parametros de entrada la ID de transcción y la ID de usuario.
client
.sendTransaction(transactionID, userID)
Eso es todo. Cada vez que se llame al metodo enviará una transacción.
Ejemplo
test.js
import { LBFraudSDK, LBFraudSDKEnvironment } from 'ironchip-fraud-detection-web-sdk';
const client = new LBFraudSDK({
apiKey: 'api-key', // Reemplaza 'api-key' con tu clave API real
environment: LBFraudSDKEnvironment.Testing
});
const myButton = document.getElementById('myButton');
// Función para recortar, convertir a minúsculas y hash el userID
async function anonymizeUserID(userID) {
const trimmedLowercaseUserID = userID.trim().toLowerCase();
const hashedUserID = await sha256Hash(trimmedLowercaseUserID);
return hashedUserID;
}
// Función para realizar hashing usando SHA-256
async function sha256Hash(text) {
const encoder = new TextEncoder();
const data = encoder.encode(text);
const hash = await crypto.subtle.digest('SHA-256', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
// Función simulada para realizar el inicio de sesión
async function performLogin(username, password) {
// Simular un retraso de 2 segundos para la autenticación
await new Promise(resolve => setTimeout(resolve, 2000));
// Modificación: siempre devuelve true
return true; // Cambia esto si necesitas que la lógica real de inicio de sesión funcione
}
function setListener() {
myButton.onclick = async function() {
const transactionID = document.getElementById('transactionId').value;
const userID = document.getElementById('userId').value;
// Simular la entrada del usuario para el inicio de sesión
const username = 'testuser'; // Reemplaza con el valor real
const password = 'testpassword'; // Reemplaza con el valor real
const loginSuccessful = await performLogin(username, password);
if (loginSuccessful) {
// Si el inicio de sesión es exitoso, anonimiza el userID antes de enviar la transacción
const anonymizedUserID = await anonymizeUserID(userID);
// Enviar la transacción
client
.sendTransaction(transactionID, anonymizedUserID)
.then((success) => {
console.log('Transacción exitosa:', success);
})
.catch((errorMsg) => {
console.log('Error durante la transacción:', errorMsg);
});
} else {
// Agrega aquí cualquier código que quieras ejecutar en caso de un error durante la transacción.
}
}
}
window.onload = function() {
setListener();
}
index.html
<!DOCTYPE html>
<html>
<head>
<title>Web SDK test</title>
</head>
<body>
<label for="transactionId">Transaction ID:</label>
<input type="text" id="transactionId" name="transactionId">
<label for="userId">User ID:</label>
<input type="text" id="userId" name="userId">
<button id="myButton">Send transaction</button>
<script type="module" src="test.js"></script>
</body>
</html>
index.html
<!DOCTYPE html>
<html>
<head>
<title>Web SDK test</title>
</head>
<body>
<label for="transactionId">Transaction ID:</label>
<input type="text" id="transactionId" name="transactionId">
<label for="userId">User ID:</label>
<input type="text" id="userId" name="userId">
<button id="myButton">Enviar Transacción</button>
<script type="module" src="test.js"></script>
</body>
</html>
Documentación adicional
Para utilizar correctamente el SDK, es necesario activar el permiso de ubicación.
En Safari si tu navegador no muestra el modal para permitirlo, es necesario activarlo, para ello sigue los siguientes pasos:
- En su Mac, elija el menú Apple > Ajustes del sistema, haga clic en Privacidad y seguridad en la barra lateral y haga clic en Localización a la derecha.
- Active los Servicios de ubicación para Safari en la lista de la derecha.