Git Product home page Git Product logo

zerochat's Introduction

I'm a Senior Software Engineer and Consultant.

  • I'm pretty often online at my ZeroChat instance chat.justhack.in, drop me a message and I'll read it eventually
  • You should read my blog about security and job security, justhack.in
  • Want to send me something? My email and public key are at devralph.com

Ongoing (as of April 2023)

  • ZeroChat: Live web chat that uses no javascript, cookies, accounts, or tracking of any kind
  • Hotplate (private project)

On Pause

  • Athos (private project)
  • Rezzy: Modern (unfinished) resume builder written in React
  • SeaShell: Remote shell handler for connections over plain TCP/IP
  • osdev-barebones: Operating System following the OSDev Wiki's Bare Bones Guide, with compilers and build script included

zerochat's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar janasunrise avatar rslay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

narayanr7

zerochat's Issues

Security audit and testing of program

Webapp pentesting is a skill that will be needed to make sure ZeroChat is a secure application. I am almost certain that there is something vulnerable - there are already more than 700 lines of code at the first commit.
I will prioritize the following:

  • Research memory leaks and how to detect/exploit and avoid them or protect against exploitation
  • Reduce code size and attack surface
  • Make the program more modular so that debugging and bug hunting/fixing becomes easier
  • Use fuzzers and try to break the server/take it down/inject malicious code
  • Automatically detect and block DDoS attempts

Add: nginx proxy and guid

Hello, how i can to connect my domain to my website? I use cloudflare flexible SSL, and i need use domain name. How? If i use redirect, i take something strange - web is crashed when i try write message.
For example: https://hive.slainscraft.com/

Limit filesize upload, stop in mutex from connection continuing

Users who try to upload files larger than given limit should have the upload stop if it goes past a certain filesize.

Optimal solution is to check filesize before letting the user start uploading, but it may not be that straightforward since clients can lie. Got to stop the upload the second it passes the filesize limit

Messages are never deleted server-side

Currently, messages are stored in the msg array as JSON, but never deleted or removed.
At an interval, these should be removed. Perhaps the messages should be stored on the heap, or maybe that is not the best approach. Some research will need to be done on how NodeJS handles memory allocation, and to make sure no memory leaks are happening.

Use sandboxed iframes

Make iframes restricted and only able to submit forms.

Potentially, the chat itself could be moved off into an iframe for sandboxing user messages in case something is vulnerable, so that all attempts at XSS would be negated.

Add a rolling key for posting

Add a rolling identification key for posting, so that if the viewing key is compromised on the user's end, nobody can pretend to be them with an old key.
Since the passcode is already secured and only sent over once, this would be the next step to secure the identification method for users

Remove users after they disconnect

At the moment, users seem to stay in the chat, server-side, even after disconnecting.
There will need to be a remove of users once their connection is lost.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.