{"id":21322118,"url":"https://github.com/polyrabbit/schindler-list","last_synced_at":"2025-09-10T01:46:23.756Z","repository":{"id":11027292,"uuid":"13358480","full_name":"polyrabbit/Schindler-List","owner":"polyrabbit","description":"salvation lies within","archived":false,"fork":false,"pushed_at":"2013-10-16T13:35:55.000Z","size":225,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T11:48:03.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polyrabbit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-06T07:02:26.000Z","updated_at":"2015-03-02T08:05:32.000Z","dependencies_parsed_at":"2022-09-23T12:51:14.523Z","dependency_job_id":null,"html_url":"https://github.com/polyrabbit/Schindler-List","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyrabbit%2FSchindler-List","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyrabbit%2FSchindler-List/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyrabbit%2FSchindler-List/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyrabbit%2FSchindler-List/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polyrabbit","download_url":"https://codeload.github.com/polyrabbit/Schindler-List/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243801612,"owners_count":20350106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-21T20:13:25.082Z","updated_at":"2025-03-15T22:44:54.327Z","avatar_url":"https://github.com/polyrabbit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Schindler's List\n\n我曾经当过一段时间的助教，实在是讨厌每次的点名，大概是因为以下的几个原因：\n\n1. 奇葩的名字。有些字可能这辈子也不会再碰到第二次了，而且我的普通话也太烂，尴尬。\n2. 代签。为防止某些好心人的代签，我心须时刻留意，这让我回想起了高中时帮语文老师检查谁没有交作业的情景。\n3. 时间。嗯，一堂课如果有百十来号人，没有十几分钟是签不完的。\n\n因此，这世上便诞生了`Schindler'sList`这一签到神器，自从有了它，妈妈再也不用担心我的签到综合症了。\n\n### 用法\n* Windows\n\n    如果你没有Python解释器，或者你不知道什么是Python，请先[下载](http://python.org/ftp/python/2.7.5/python-2.7.5.msi)安装（这就像你想打开word文档必须要先安装office一样）。And then,\n    1. [下载](https://github.com/polyrabbit/Schindler-List/archive/master.zip)并解压，进入到程序目录后双击运行schindler.py，你会看到一个黑窗口，不用怕，那不是黑洞，上面写着`Server is listening on x.x.x.x:80`，x.x.x.x应该是四个具体的数字，\n那代表了你的IP。\n    2. 将这个IP地址告诉你的学生，让他们来访问这个IP（就像访问www.baidu.com一样），并让他们在浏览器弹出的窗口上填入自己在[教务网](http://jw.dhu.edu.cn)的学号和密码，研究生请填入[信息门户](http://my.dhu.edu.cn)的账号。\n    3. 没有第三步。\n    4. 当同学们都完成之后，请关掉这个程序（点右上角的X，恭喜你答对了），然后在同一个目录下你会找到`Schindler'sList.txt`这个文件，它就是我们最终想要的出勤名单，打开它，你和你的小伙伴们都会惊呆的。\n\n* Linux\n  \n    Happy hacking :smile: \n\n### 原理\n\u003e怎样向别人证明这就是我，这他妈是个哲学问题。\n\n在这个软件里，我将一个人在[教务网](http://jw.dhu.edu.cn)上的账号用作他的身份证明，当然这是建立在一般人不会随便把他的账号告诉别人的基础之上。很显然这样的假设对某些求签到若渴的学生是不成立的，\n所以我对账号和电脑进行了绑定，也就是说如果A君在这台电脑上签到过了，那他就不可以再在这台电脑上帮B君代签了，除非A君自己不签到，而把机会让给B君，这样无私的[友|爱|基]情，就放过吧。\n\n\u003e你怎么知道这个学生填写的学号和密码是不是正确的？\n\n我不知道呀，但是我们的[教务网](http://jw.dhu.edu.cn)会知道，我只要把他提供的学号和密码拿去登录[教务网](http://jw.dhu.edu.cn)，能成功不就证明这是正确的么。当然，这一切都是机器做的，不要人去手动操作。如果你的安全意识稍微强一点的话，你可能会担心，学生把自己的学号和密码提交上来了，这个程序会记录么？嗯，或许将来某天会吧，但现在绝对不会，要不放心你可以逐字检查我的代码，看看哪里是不是留有后门。\n\n\n好吧，我承认第一句话我说谎了，其实我是知道你密码的，方法就在我的另一个**PRIVATE** [repo](https://github.com/polyrabbit/dhu-jw-sql-injection)里面（别点，你什么也看不到）。关于这个漏洞我老早就已经向学校报告过了，但一直没人鸟我，无语～～\n\n\u003e整个签到过程有没有漏洞？\n\n当然有了，任何系统都会有不同程度的漏洞。根据上面的描述，A君在自己签到完之后，只要再找一台空闲电脑就可以帮B君签到了，这个我也没有办法阻止。如果哪天你在生成的`Schindler'sList.txt`文件中看到同一个IP下有两个不同的学生签到的话，那就证明这个软件失效了，请不要再用下去。\n\n欢迎各种[**建议与反馈**](https://github.com/polyrabbit/Schindler-List/issues)。\n\n### Liscense\nLGPL v3\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/polyrabbit/schindler-list/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolyrabbit%2Fschindler-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolyrabbit%2Fschindler-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolyrabbit%2Fschindler-list/lists"}