mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
removed logs & added pwndpasswords.com api to CSP
This commit is contained in:
@@ -24,7 +24,7 @@ import {
|
||||
secretSnapshot as eeSecretSnapshotRouter,
|
||||
users as eeUsersRouter,
|
||||
workspace as eeWorkspaceRouter,
|
||||
secretScanning as v1SecretScanningRouter,
|
||||
secretScanning as v1SecretScanningRouter
|
||||
} from "./ee/routes/v1";
|
||||
import {
|
||||
auth as v1AuthRouter,
|
||||
@@ -58,7 +58,7 @@ import {
|
||||
signup as v2SignupRouter,
|
||||
tags as v2TagsRouter,
|
||||
users as v2UsersRouter,
|
||||
workspace as v2WorkspaceRouter,
|
||||
workspace as v2WorkspaceRouter
|
||||
} from "./routes/v2";
|
||||
import {
|
||||
auth as v3AuthRouter,
|
||||
@@ -70,14 +70,21 @@ import { healthCheck } from "./routes/status";
|
||||
import { getLogger } from "./utils/logger";
|
||||
import { RouteNotFoundError } from "./utils/errors";
|
||||
import { requestErrorHandler } from "./middleware/requestErrorHandler";
|
||||
import { getNodeEnv, getPort, getSecretScanningGitAppId, getSecretScanningPrivateKey, getSecretScanningWebhookProxy, getSecretScanningWebhookSecret, getSiteURL } from "./config";
|
||||
import {
|
||||
getNodeEnv,
|
||||
getPort,
|
||||
getSecretScanningGitAppId,
|
||||
getSecretScanningPrivateKey,
|
||||
getSecretScanningWebhookProxy,
|
||||
getSecretScanningWebhookSecret,
|
||||
getSiteURL
|
||||
} from "./config";
|
||||
import { setup } from "./utils/setup";
|
||||
import { syncSecretsToThirdPartyServices } from "./queues/integrations/syncSecretsToThirdPartyServices";
|
||||
import { githubPushEventSecretScan } from "./queues/secret-scanning/githubScanPushEvent";
|
||||
const SmeeClient = require('smee-client') // eslint-disable-line
|
||||
const SmeeClient = require("smee-client"); // eslint-disable-line
|
||||
|
||||
const main = async () => {
|
||||
|
||||
await setup();
|
||||
|
||||
await EELicenseService.initGlobalFeatureSet();
|
||||
@@ -94,11 +101,15 @@ const main = async () => {
|
||||
})
|
||||
);
|
||||
|
||||
if (await getSecretScanningGitAppId() && await getSecretScanningWebhookSecret() && await getSecretScanningPrivateKey()) {
|
||||
if (
|
||||
(await getSecretScanningGitAppId()) &&
|
||||
(await getSecretScanningWebhookSecret()) &&
|
||||
(await getSecretScanningPrivateKey())
|
||||
) {
|
||||
const probot = new Probot({
|
||||
appId: await getSecretScanningGitAppId(),
|
||||
privateKey: await getSecretScanningPrivateKey(),
|
||||
secret: await getSecretScanningWebhookSecret(),
|
||||
secret: await getSecretScanningWebhookSecret()
|
||||
});
|
||||
|
||||
if ((await getNodeEnv()) != "production") {
|
||||
@@ -106,12 +117,14 @@ const main = async () => {
|
||||
source: await getSecretScanningWebhookProxy(),
|
||||
target: "http://backend:4000/ss-webhook",
|
||||
logger: console
|
||||
})
|
||||
});
|
||||
|
||||
smee.start()
|
||||
smee.start();
|
||||
}
|
||||
|
||||
app.use(createNodeMiddleware(GithubSecretScanningService, { probot, webhooksPath: "/ss-webhook" })); // secret scanning webhook
|
||||
app.use(
|
||||
createNodeMiddleware(GithubSecretScanningService, { probot, webhooksPath: "/ss-webhook" })
|
||||
); // secret scanning webhook
|
||||
}
|
||||
|
||||
if ((await getNodeEnv()) === "production") {
|
||||
@@ -119,7 +132,16 @@ const main = async () => {
|
||||
// in production
|
||||
app.disable("x-powered-by");
|
||||
app.use(apiLimiter);
|
||||
app.use(helmet());
|
||||
app.use(
|
||||
helmet.contentSecurityPolicy({
|
||||
useDefaults: true,
|
||||
directives: {
|
||||
defaultSrc: ["'self'"],
|
||||
imgSrc: ["*", "data:"],
|
||||
connectSrc: ["'self'", "https://api.pwnedpasswords.com/range/"]
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
app.use((req, res, next) => {
|
||||
@@ -207,8 +229,8 @@ const main = async () => {
|
||||
|
||||
server.on("close", async () => {
|
||||
await DatabaseService.closeDatabase();
|
||||
syncSecretsToThirdPartyServices.close()
|
||||
githubPushEventSecretScan.close()
|
||||
syncSecretsToThirdPartyServices.close();
|
||||
githubPushEventSecretScan.close();
|
||||
});
|
||||
|
||||
return server;
|
||||
|
||||
@@ -1,28 +1,18 @@
|
||||
import axios from "axios";
|
||||
import crypto from "crypto"; // added types from @types/node
|
||||
|
||||
///// REMINDER: ensure all logs are deleted!!! /////
|
||||
|
||||
export const checkIsPasswordBreached = async (password: string) => {
|
||||
const dataBreachCheckAPIBaseURL = "https://api.pwnedpasswords.com/range/";
|
||||
try {
|
||||
console.log("password:", password); // delete later!!!
|
||||
|
||||
const textEncoder = new TextEncoder();
|
||||
|
||||
const encodedPwd = textEncoder.encode(password);
|
||||
console.log("encodedPwd:", encodedPwd); // delete later!!!
|
||||
|
||||
const hash = crypto.createHash("sha1").update(encodedPwd).digest();
|
||||
console.log("hash:", hash); // delete later!!!
|
||||
|
||||
const hashedPwd = Array.from(new Uint8Array(hash))
|
||||
.map((byte) => byte.toString(16).padStart(2, "0"))
|
||||
.join("")
|
||||
.toUpperCase();
|
||||
|
||||
console.log("hashedPwd:", hashedPwd); // delete later!!!
|
||||
|
||||
const response = await axios.get(`${dataBreachCheckAPIBaseURL}${hashedPwd.slice(0, 5)}`);
|
||||
console.log("response:", response); // delete later!!!
|
||||
|
||||
|
||||
Reference in New Issue
Block a user