You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
5.6 KiB
151 lines
5.6 KiB
// const express = require('express') |
|
// const path = require('path') |
|
// const fs = require('fs') |
|
// const app = express() |
|
// const PORT = 3000 |
|
// |
|
// // process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0" |
|
// const {jsdomFromText, jsdomFromUrl, browser} = require('sdenv'); |
|
// const {Script} = require("vm"); |
|
// |
|
// |
|
// const baseUrl = "https://etax.hebei.chinatax.gov.cn:8443/" |
|
// |
|
// const store = new Map(); |
|
// |
|
// const files = { |
|
// html: path.resolve('../public/hubei/index.html'), |
|
// js: path.resolve('../public/hubei/5PXGXoOF7eGJ.ed63b8f.js'), |
|
// ts: path.resolve('../public/hubei/ts.json'), |
|
// } |
|
// |
|
// function getFile(name) { |
|
// const filepath = files[name]; |
|
// if (!filepath) throw new Error(`getFile: ${name}错误`); |
|
// if (!fs.existsSync(filepath)) throw new Error(`文件${filepath}不存在,请使用rs-reverse工具先获取文件`); |
|
// return fs.readFileSync(filepath); |
|
// } |
|
// |
|
// async function loadPages(key) { |
|
// const htmlText = getFile('html'); |
|
// const jsText = getFile('js'); |
|
// let tsText = getFile('ts'); |
|
// let get = `${baseUrl}`; |
|
// const [jsDom, cookieJar] = jsdomFromText({ |
|
// url: get, |
|
// referrer: get, |
|
// contentType: "text/html", |
|
// runScripts: "dangerously",//dangerously启用在页面内执行js,outside-only在外部执行js:window.eval() |
|
// }) |
|
// const dom = jsDom(htmlText); |
|
// window = dom.window |
|
// window.$_ts = JSON.parse(tsText.toString()); |
|
// window.onbeforeunload = async (url) => { |
|
// const cookies = cookieJar.getCookieStringSync(baseUrl); |
|
// console.debug('生成cookie:', cookies); |
|
// store.set(key, cookies) |
|
// // window.close(); |
|
// } |
|
// browser(window, 'chrome'); |
|
// |
|
// new Script(jsText.toString()).runInContext(dom.getInternalVMContext()); |
|
// |
|
// return cookieJar; |
|
// } |
|
// |
|
// let sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); |
|
// |
|
// |
|
// function action(key, url) { |
|
// return new Promise(async (resolve, reject) => { |
|
// let cookieJar = await loadPages(key, url); |
|
// // for (let i = 0; i < 100; i++) { |
|
// await sleep(1000) |
|
// let cookieStringSync = cookieJar.getCookieStringSync(baseUrl); |
|
// let val = store.get(key); |
|
// // console.log(val) |
|
// console.log(cookieStringSync) |
|
// // 尝试访问 |
|
// let response = await fetch(baseUrl, { |
|
// "headers": { |
|
// "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", |
|
// "accept-language": "zh-CN,zh;q=0.9", |
|
// "cache-control": "no-cache", |
|
// "pragma": "no-cache", |
|
// "priority": "u=0, i", |
|
// "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"", |
|
// "sec-ch-ua-mobile": "?0", |
|
// "sec-ch-ua-platform": "\"Linux\"", |
|
// "sec-fetch-dest": "document", |
|
// "sec-fetch-mode": "navigate", |
|
// "sec-fetch-site": "none", |
|
// "sec-fetch-user": "?1", |
|
// "upgrade-insecure-requests": "1" |
|
// }, |
|
// "referrerPolicy": "strict-origin-when-cross-origin", |
|
// "body": null, |
|
// "method": "GET" |
|
// }); |
|
// console.log('11111111111', response.headers.get('set-cookie')); |
|
// |
|
// if (cookieStringSync !== undefined) { |
|
// return resolve(cookieStringSync) |
|
// } |
|
// // } |
|
// reject('未获取到cookie') |
|
// }) |
|
// } |
|
// |
|
// action("111111", baseUrl) |
|
// |
|
// app.get('/getCookie', async (req, res) => { |
|
// let traceId = req.query['traceId']; |
|
// if (traceId === undefined) { |
|
// return res.send('error') |
|
// } |
|
// let url = req.query['url']; |
|
// try { |
|
// let ac = await action(traceId, url); |
|
// return res.send(ac) |
|
// } catch (e) { |
|
// return res.send(e) |
|
// } |
|
// }) |
|
// |
|
// // |
|
// // fetch("https://tpass.hebei.chinatax.gov.cn:8443/sys-api/v1.0/auth/oauth2/getPublicKey", { |
|
// // "headers": { |
|
// // "accept": "application/json, text/plain, */*", |
|
// // "accept-language": "zh-CN,zh;q=0.9", |
|
// // "authorization": "", |
|
// // "cache-control": "no-cache", |
|
// // "content-type": "application/json", |
|
// // "deviceidentyno": "wrhX86TArZj82EUurHJWVBktiBVKERpy", |
|
// // "huid": "", |
|
// // "pragma": "no-cache", |
|
// // "priority": "u=1, i", |
|
// // "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"", |
|
// // "sec-ch-ua-mobile": "?0", |
|
// // "sec-ch-ua-platform": "\"Linux\"", |
|
// // "sec-fetch-dest": "empty", |
|
// // "sec-fetch-mode": "cors", |
|
// // "sec-fetch-site": "same-origin", |
|
// // "x-app-clientid": "", |
|
// // "x-lang-id": "null", |
|
// // "x-nature-ip": "", |
|
// // "x-sm4-info": "0", |
|
// // "x-temp-info": "fffe092bceb04d32915d41c2634ed9ff", |
|
// // "x-ticket-id": "null" |
|
// // }, |
|
// // "referrer": "https://tpass.hebei.chinatax.gov.cn:8443/", |
|
// // "referrerPolicy": "strict-origin-when-cross-origin", |
|
// // "body": "{\"zipCode\":\"0\",\"encryptCode\":\"0\",\"datagram\":\"{}\",\"timestamp\":\"20240828150426\",\"access_token\":\"\",\"signtype\":\"HMacSHA256\",\"signature\":\"67848659b891af24ea9c2706e6fccbf03c2448666b719c00a49534dc536500fc\"}", |
|
// // "method": "POST", |
|
// // "mode": "cors", |
|
// // "credentials": "include" |
|
// // }); |
|
// |
|
// |
|
// // app.listen(PORT, () => { |
|
// // console.log(`app is running on PORT ${PORT}`) |
|
// // })
|
|
|