Giter Club home page Giter Club logo

s-progress's People

Contributors

yassi-github avatar

Watchers

 avatar

s-progress's Issues

全角文字対応

echo にほんごなどと全角文字を入れるとUncaught DOMException: String contains an invalid characterとなる。

JSではbtoa('にほんご')ができないよう。

セキュアなコンテナの設計

コマンドの実行は、サンドボックス化する目的で、Dockerコンテナの中で行う。

ホストに悪い影響を与えないように、コンテナのリソース制限や権限の設定をしておかなくてはならない。

制限を行うためには何が使えるのか

  • AppArmor
    • ファイルのアクセス制限
    • コマンドの実行制限
  • seccomp
    • システムコールの制限
  • Dockerのオプション
    • --pids-limit, --memory-swap
  • UML

どういう制限を行うか

  • ネットワークアクセス
    • DoSや、悪意あるサイトへのアクセス対策
    • スクリプトの実行には必要ないはず
  • プロセス数
    • fork爆弾対策
  • CPU、メモリ量
    • 言わずもがな

何を制限すべきか本当に制限すべきかわからん

  • ファイルアクセスへの制限
    • 共有ディレクトリはホスト側で適切な権限を振る?
  • システムコール
    • 何が危険?
  • 実行ユーザー
    • 一般ユーザーでコマンドを実行させれば済む問題なのか?

Roadmap

優先すべきもの

  • タイムアウト処理
  • フロント
    • 概要だけ一覧
    • それぞれの問題へのリンクを張る
    • 問題をクリックしたら解答するところが現れる

余裕があれば

  • ユーザーの追加
  • ログイン・ログアウト

さらに凝るなら

  • 成績表示
  • 見た目をコンソールっぽくする
  • 管理者ページ
    • 問題の追加・削除

複数パターンの実行テスト

problem fileをパスしたら、exテストファイルを試す
パスしたというよりエラーが出なかった?ら、problem fileをいじろうとしてない(root権限のファイルをchown,chmod,writeしようとしてない)のでprobが自オーナーファイルを実行してもいじられることはない
direectory: mode: 500, owner: prob, name: extest
files: mode: 400, owner: prob, name: exq.txt
のように用意して、実行ファイルをprob権限で、ファイルパスをexテストのやつに書き換えて行う。

PyYAMLのload時にスペースが取り除かれてしまう

conf.yamlのresultには、
uniq -cの出力結果

      10 admin
       8 user

のように、スペース始まりを許容するべきときがある。

しかしyaml.safe_loadではできていないっぽい。
loadでやるとInternal server errorとなる。
要検証。

応急対処として、最終コマンドに| awk '{$1=$1}; 1'を無理やり入れてCorrectとなるようにしている。

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.