Compare commits

..

No commits in common. "e754739219dce50840df5844dde7e654280f2f48" and "ccb88adcb4a559e29a89427d5dfed0561b081334" have entirely different histories.

16 changed files with 17 additions and 120 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -7,34 +7,13 @@
.main { .main {
display: grid; display: grid;
grid-template-areas: grid-template-areas:
"off_btn search" "our_port search"
"our_port sites" "servers sites"
"servers sites"; "servers sites";
grid-template-columns: 1fr 2fr; grid-template-columns: 1fr 2fr;
grid-template-rows: auto auto; grid-template-rows: auto auto;
} }
.off_btn {
grid-area: off_btn;
background: #ff5a5a;
align-content: center;
border-radius: 0.4rem;
padding-left: 1rem;
padding-right: 1rem;
border-style: hidden;
font-size: 1rem;
width: calc(100% - 0.5rem);
height: 100%;
}
.off_btn:active {
background-color: #c85000;
box-shadow: rgba(0, 0, 0, .06) 0 2px 4px;
transform: scale(.96);
}
.our_port { .our_port {
grid-area: our_port; grid-area: our_port;
background: #53f453; background: #53f453;
@ -43,7 +22,6 @@
padding-left: 1rem; padding-left: 1rem;
padding-right: 1rem; padding-right: 1rem;
margin-right: 0.5rem; margin-right: 0.5rem;
margin-top: 0.4rem;
} }
.servers { .servers {

5
config.json Normal file
View File

@ -0,0 +1,5 @@
{
"ports": [
25128
]
}

View File

@ -1,52 +0,0 @@
## Содержание
1. Почему JS это плохо (для безопасности)
2. Как отключить JS на jetwork.del.pw
3. Как отключить JS на локальном клиенте
<br>
<br>
### 1. Почему JS это плохо
Через JS можно узнать ваш айпи и отслеживать вас между сайтами. <br>
Или например узнать примерную локацию, что иногда может помочь вас сдеанонимизировать. <br>
Если это вас не волнует - можете дальше не читать. <br>
### 2. Как отключить JS на jetwork.del.pw
Заходим на jetwork.del.pw <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/6ade4b4d-93b7-4538-a262-44bd8aafeb95)
<br>
Заходим на js-check.jet и видим что у нас всё плохо <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/47bf4491-9804-40a3-a02a-b9550daf90f7)
<br>
Устанавливаем расширение Ublock Origin. (Origin!!!) <br>
Делается это как и со всеми расширениями.
<br>
Заходим в доп.найстройки Ublock Origin <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/3984c49e-3ade-4c5a-a691-fd9152902924)
<br>
Ставим галочку в вкладке `Settings` напротив `I am advanced user` <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/896ba926-109f-42a0-ac14-3352146771d7)
<br>
Выключаем скрипты через расширение как показано, прямоугольник загорится красным <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/378303d0-b0a5-4917-84ee-28eec5b52cbf)
<br>
Перезагружаем страницу и... <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/878c3b22-5ca8-4ae4-87a3-dfb714e16c14)
### 3. Как отключить JS на локальном клиенте
Заходим на `127.0.0.1:5555` <br>
![image](https://github.com/Justuser3310/jetwork/assets/53183489/13f107f9-6753-4278-bc07-d7c8206cc981)
<br>
Дальше по аналогии как в пункте 2.
> Есть вопросы - в чат ( https://t.me/justuser31_chat )

View File

@ -7,7 +7,7 @@ def domain_ok(domain):
if domain.split(".")[1] in domains: if domain.split(".")[1] in domains:
# ../some => some # ../some => some
# Защита от проверки папок выше, чем нужно и др. # Защита от проверки папок выше, чем нужно и др.
regex = compile('[^a-z.-]') regex = compile('[^a-zA-Zа-яА-ЯЁё.-]')
c_domain = regex.sub('', domain) c_domain = regex.sub('', domain)
if domain == c_domain: if domain == c_domain:
return domain return domain

View File

@ -2,20 +2,14 @@ from dash import Dash, dcc, html, Input, Output, callback
app = Dash(__name__, title='Jetwork', update_title=None) app = Dash(__name__, title='Jetwork', update_title=None)
from db import * from db import *
from status import *
from os import walk from os import walk
from os import system as sys
from platform import system
from threading import Thread
app.layout = html.Div([ html.Div([ app.layout = html.Div([ html.Div([
dcc.ConfirmDialog(id='shut_mess', message='Клиент выключен!'),
html.Button("Выключить клиент", className='off_btn', n_clicks=0, id='off_btn'),
html.Div([], id='our_port', className='our_port'), html.Div([], id='our_port', className='our_port'),
html.Div([], id='servers', className='servers'), html.Div([], id='servers', className='servers'),
html.Div([], id='sites', className='sites'), html.Div([], id='sites', className='sites'),
#dcc.Input(className='search', type='search', list=[1,2,3]),
dcc.Dropdown(options=[], id='search', placeholder='Поиск...'), dcc.Dropdown(options=[], id='search', placeholder='Поиск...'),
dcc.Interval(id='interval-component', interval=1*1000, n_intervals=0) dcc.Interval(id='interval-component', interval=1*1000, n_intervals=0)
@ -23,29 +17,6 @@ dcc.Interval(id='interval-component', interval=1*1000, n_intervals=0)
], className='main')], className='content') ], className='main')], className='content')
# Функция выключения
def shutdown():
# Задаём код остановки
status_set('stop')
# Определяем платформу
if system() == 'Linux':
# вырубаем прокси и скрипты
sys('killall bore')
sys('killall python')
elif system() == 'Windows':
sys('taskkill /f /im bore.exe')
sys('taskkill /f /im python.exe')
# Кнопка выключения
@callback(
Output('shut_mess', 'displayed'),
Input('off_btn', 'n_clicks'),
prevent_initial_call=True
)
def shut_btn(n_clicks):
th = Thread(target=shutdown)
th.start()
return True
# Обновление нашего порта (зачем?) # Обновление нашего порта (зачем?)
@callback(Output('our_port', 'children'), @callback(Output('our_port', 'children'),

View File

@ -63,7 +63,7 @@ if __name__ == '__main__':
p = Process(target=main) p = Process(target=main)
p.start() p.start()
status_set('work') # Устанавливаем статус, что программа работает status_set(True) # Устанавливаем статус, что программа работает
st = status_check() st = status_check()
while st: while st:

View File

@ -2,8 +2,6 @@ from os import system, name
from threading import Thread from threading import Thread
from time import sleep from time import sleep
from status import *
global http_out ; http_out = None global http_out ; http_out = None
def proxy_http(port): def proxy_http(port):
global http_out global http_out
@ -26,15 +24,13 @@ def watch_http(port):
run.start() run.start()
global http_out global http_out
st = status_check() while True:
while st:
# Если команда вышла # Если команда вышла
if http_out or not run.is_alive(): if http_out or not run.is_alive():
run.join(1) run.join(1)
http_out = None http_out = None
run = Thread(target=proxy_http, args=(port,)) run = Thread(target=proxy_http, args=(port,))
run.start() run.start()
st = status_check()
sleep(1) sleep(1)
def watch_serv(port): def watch_serv(port):
@ -42,12 +38,10 @@ def watch_serv(port):
run.start() run.start()
global serv_out global serv_out
st = status_check() while True:
while st:
if serv_out or not run.is_alive(): if serv_out or not run.is_alive():
run.join(1) run.join(1)
serv_out = None serv_out = None
run = Thread(target=proxy_serv, args=(port,)) run = Thread(target=proxy_serv, args=(port,))
run.start() run.start()
st = status_check()
sleep(1) sleep(1)

1
status Normal file
View File

@ -0,0 +1 @@
work

View File

@ -19,8 +19,8 @@ def status_check():
def status_set(st): def status_set(st):
f = open('status', 'w') f = open('status', 'w')
if st == 'work' or st == 'stop': if st == True:
f.write(st) f.write('work')
else: else:
return 404 f.write('stop')
f.close() f.close()