Jocay
c013a389fe
feat: Implement directory validation and shell command quoting
...
- Added is_valid_directory function to validate directory paths, ensuring they do not contain control characters and are within a specified length.
- Introduced quote_shell_arg to safely quote shell arguments, preventing command injection.
- Created build_cd_command to generate a command for changing directories in a shell.
- Enhanced the LoginHandler to utilize a login rate limiter, preventing brute-force attacks by tracking failed login attempts.
- Implemented an EncodingCache to optimize encoding detection for SSH connections.
- Updated the UI to include an input field for specifying an initial directory upon login, with appropriate validation and hints.
- Added a quickbar in the terminal interface for easy access to copy and paste functionality.
- Introduced a toast notification system to provide feedback on copy actions.
- Refactored connection storage to encrypt passwords at rest, improving security.
- Updated various templates and styles to accommodate new features and improve user experience.
2026-08-10 00:07:52 +08:00
jocayn
845c3dece3
Prepare WebSSH for self-hosted deployment
2026-06-13 12:11:36 +08:00
Sheng
d54f5b547a
Use options.delay instead of DELAY
2020-10-07 20:29:13 +08:00
Sheng
fc30ead69e
Refactoring
2019-10-09 11:40:07 +08:00
Sheng
049baad909
Try to detect the encoding set by the user
2019-10-06 15:18:23 +08:00
Sheng
afcf8b52cc
Validate the result of locale charmap
2019-10-05 13:18:53 +08:00
Sheng
0775c0c3ae
Refactored handler.py
2019-07-08 15:37:32 +08:00
Sheng
d197133c95
Support 2fa
2019-07-07 14:52:43 +08:00
Sheng
bec5b605fb
Updated tests
2019-07-05 13:15:18 +08:00
Sheng
2b8b978ca2
Added PrivateKey class
2019-06-27 12:52:19 +08:00
Sheng
9fbd5d325f
Made tests compatible with tornado 4.5.3
2019-02-21 17:32:55 +08:00
Sheng
b25fbd7b57
Changed exception error message
2019-02-21 16:12:48 +08:00
Sheng
824e6b9113
Refactored tests
2019-02-13 20:51:12 +08:00
Sheng
8922813142
Refactored tests
2019-02-13 11:40:44 +08:00
Sheng
d389e32b85
Enhanced tests
2019-02-13 09:30:06 +08:00
Sheng
a1c9378048
Support CORS
2019-01-23 21:48:03 +08:00
Sheng
713ae1e8f1
Support cross origin connect
2019-01-19 19:19:45 +08:00
Sheng
2653a3e35a
Added function for limiting connections for every client(ip)
2018-12-29 16:16:06 +08:00
Sheng
699b37d7a1
Updated test_app.py
2018-11-16 11:42:25 +08:00
Sheng
32f303474e
Updated test_app.py
2018-11-15 20:23:42 +08:00
Sheng
5d6f92e529
Move some config variables to handler.py
2018-10-18 15:07:45 +08:00
Sheng
c2c81aaeae
Use method initialize to deny forbidden acesss
2018-10-17 19:22:51 +08:00
Sheng
7e5a170383
Added head method IndexHandler
2018-10-16 16:15:39 +08:00
Sheng
a68eff592f
Added attribute custom_headers to MixinHandler
2018-10-16 15:14:34 +08:00
Sheng
af60cd1cd5
Tested app with 403 and 404 requests
2018-10-16 14:51:15 +08:00
Sheng
e94c846379
Added default handler NotFoundHandler
2018-10-16 13:56:44 +08:00
Sheng
499f3b6dcd
Lowercase all option names
2018-10-15 22:06:02 +08:00
Sheng
12f4c0d0d2
Pass server settings for test
2018-10-15 21:36:54 +08:00
Sheng
656e2ff028
Tested default port
2018-10-10 23:18:38 +08:00
Sheng
0c9db2abaf
Set default port 22 on server side
2018-10-10 22:30:37 +08:00
Sheng
33703f0ca3
Updated lookup_hostname
2018-10-08 22:37:03 +08:00
Sheng
a576a41ea4
Lookup hostname before connection under reject policy
2018-10-08 20:25:21 +08:00
Sheng
b3c33ff6bd
Use form attribute novalidate for debug mode
2018-09-12 13:47:33 +08:00
Sheng
5f3641701e
Increase buffer size for channel
2018-09-01 11:00:01 +08:00
Sheng
f4351318ec
Updated tests
2018-08-29 18:10:57 +08:00
Sheng
fa717491cd
Updated test_server_error
2018-08-29 09:40:07 +08:00
Sheng
6cfd981e80
Tested server error
2018-08-29 09:19:35 +08:00
Sheng
58feb5e76b
Enable xsrf for testing
2018-08-28 20:08:03 +08:00
Sheng
80bdddc280
Added setting swallow_http_errors
2018-08-28 07:43:43 +08:00
Sheng
e1fbc417fd
Added test for bad authentication type
2018-08-26 21:53:28 +08:00
Sheng
1a3880ecee
Raise InvalidException for empty required value
2018-08-26 15:40:08 +08:00
Sheng
5519a17016
Return 400 http error for invalid post requests
2018-08-26 15:13:02 +08:00
Sheng
df26d0e677
Catch ValueError instead of Exception for post method
2018-08-25 19:51:05 +08:00
Sheng
48acf09f21
Move method get_value to MixinHandler
2018-08-25 17:35:31 +08:00
Sheng
f3d9d297bb
Updated tests
2018-08-25 06:53:21 +08:00
Sheng
757702127a
Move all tests data into a separate directory
2018-08-24 15:11:21 +08:00
Sheng
4710d8c0e6
Added connect_with_options function
2018-08-24 11:11:43 +08:00
Sheng
2e34702988
Changed validation error messages
2018-08-22 17:37:23 +08:00
Sheng
3c139e05f8
Added KEY_MAX_SIZE to validate the private key
2018-08-22 13:03:14 +08:00
Sheng
37299468a9
Added is_valid_hostname to utils
2018-08-20 21:20:55 +08:00