【光纤输出源码】【talib指标源码】【源码系统价格】考勤管理系统 源码_考勤管理系统源码
1.对生物识别考勤机的考勤考勤一次简单渗透
2.考勤作弊APP创始人二审改判4年,这样的管理管理判决是否太轻了?
3.djangoå¦ä½å°è£
apiï¼djangoå°è£
exeï¼
4.考勤管理系统
5.在线求高手给个学生考勤管理系统的简单点的C语言源代码!
6.钉钉如何有效防止员工考勤打卡时进行违规作弊呢?
对生物识别考勤机的系统系统一次简单渗透
在一次常规的红队行动中,我获得了客户授权,源码源码对一个基于生物信息的考勤考勤考勤设备进行渗透。设备用于日常考勤与特殊房间人员控制。管理管理光纤输出源码尽管此前未接触该品牌机器,系统系统但通过初步检测,源码源码我成功掌握了其控制权。考勤考勤
设备运行于同一网络,管理管理已知其IP地址。系统系统使用nmap扫描后发现,源码源码设备开放了telnet和web服务。考勤考勤攻击策略主要围绕这两点展开,管理管理但telnet服务未暴露详细信息。系统系统转而关注Web服务,发现其为ZK Web Server 3.0。
深入了解后,发现Web服务存在大量漏洞,如访问控制缺失、会话固定与易受暴力破解。关键漏洞在于默认凭证(administrator:),借此我以管理员身份登录设备。
进入备份设备数据页面,发现数据可直接访问,talib指标源码无需身份验证。通过下载.dat文件,获取包含敏感信息的ZKConfig.cfg文件。以root身份登录telnet服务,检索系统文件,发现固件已被解压。
将文件系统挂载至本地机器,分析所有文件,发现webserver源代码,可用于深入研究。敏感数据包括所有用户照片与SQLite数据库记录的身份凭证、指纹等生物信息。利用这些信息,我可以修改数据库,赋予任意用户特殊房间访问权限。
进一步使用Firmwalker提取固件中敏感信息,了解设备数据备份至云服务器的机制。尽管未深入云主机渗透测试,但设备安全问题明显,配置缺陷使任何人都能通过简单漏洞获取敏感数据并完全控制。
结论是,物联网设备如考勤机常存在配置问题,易被利用。安全防护任重道远。源码系统价格本文由白帽汇整理翻译,不代表白帽汇立场。
考勤作弊APP创始人二审改判4年,这样的判决是否太轻了?
我觉得这样的判决非常合理,毕竟这个软件并没有给社会带来危害,并没有给整个计算机网络系统带来破坏性,所以这样的判决还是非常公正合理。我认为这一个软件APP并没有社会危害性,它只是通过不改变源代码的情况下,通过虚拟位置的信息修改了客户个人的位置,客户不想暴露自己位置时,就可以对位置进行遮挡,当客户觉得这个位置不合适时,可以随意进行修改,并没有给社会带来危害性,也没有利用软件特性带来严重后果,并且在这一起案件中,该公司的整个营业性收入并不是很高。
一、案件始末是什么?
整个案情非常简单,嫌疑人制作的这一款软件名字是大牛助手是一款APP通过APP客户可以进行一个前期试用,试用期过后客户需要缴纳包月费用或者包年费用费用收取并不高,客户通过APP可以对个人位置进行遮挡,别人看不到用户位置,mud源码手机当客户觉得对位置信息需要修改时,可以通过软件修改个人位置信息,模拟任何一个地方的定位,在地图上可以随意定位,法院认为该软件已经影响了整个计算机信息系统属于破坏计算机信息系统罪。所以对该软件创始人进行逮捕并判刑。
二、网络上议论纷纷。
我看到网络上很多网友在留言并且讨论这些案件,很多人认为该软件创始人并没有利用这个软件进行任何违法犯罪行为,他只是制作了一款可以修改定位的APP而已,至于用户如何使用是用户的事情,和软件创始人并没有任何关系,法院的判决有些连带责任过重,并且啊,该名创始人的软件并没有对社会造成危害,也没有造成重大损失,所以判刑有些过重,也有些人认为很多人利用软件修改定位打卡骗取工资,造成了很不好的影响,所以应该判刑。
三、应该双面性看待这个问题。
我觉得看待这个问题应该双面性,LHash算法源码如果说软件开发者有些无辜,其实这种双法也并不是很准确,因为软件开发者在开发这款软件是已经会前期预料的,客户会利用软件性质进行修改定位,但是他并没有制止,并且利用这个功能开始进行包月,甚至包年公司利用这些功能进行收入,说明已经前期预料到,会有人利用这款软件的功能进行不恰当使用,虽然软件的开发和其他日常定位的APP一样,但是在功能县志上却有些不一样,所以这样的判刑也非常准确。
djangoå¦ä½å°è£ apiï¼djangoå°è£ exeï¼
æ¬ç¯æç« ç»å¤§å®¶è°è°djangoå¦ä½å°è£ apiï¼ä»¥ådjangoå°è£ exe对åºçç¥è¯ç¹ï¼å¸æ对åä½ææ帮å©ï¼ä¸è¦å¿äºæ¶èæ¬ç«åãæ¬æç®å½ä¸è§ï¼1ãï¼äºï¼DjangoRESTå®è·µï¼æç®åçRESTAPIå®ç°2ãPython3.7é åDjango2.0æ¥è°ç¨éé(dingding)å¨çº¿apiå®æ¶çæµåå·¥èå¤æå¡æ åµ3ãDjangoRESTframeworkæ¡æ¶ä¹GET,POST,PUT,PATCH,DELETEçAPI请æ±æ¥å£è®¾è®¡ï¼äºï¼DjangoRESTå®è·µï¼æç®åçRESTAPIå®ç°æ¬å°è大æ¦è¦è±è´¹åéã
å¨åé¢ï¼æ们已ç»å¦ä¼äºDjangoå¦ä½è·å¾HTTP请æ±ä¸çå 容ï¼ä»¥åå¦ä½è·åHTTP请æ±çbodyãæ¥ä¸æ¥æ们就æ¥åä¸ä¸ªæç®åçAPIãè¿ä¸ªAPIè¦æ±å¨è¯·æ±çHTTPbodyä¸æ¾å ¥JSONæ ¼å¼çææ¬ï¼å¹¶å¨è§£æææ¬åè¿è¡å¤çï¼è¿åJSONæ ¼å¼çæ°æ®ã
æ们å®ä¹APIçURL为/api/sum/ï¼åè½æ¯ä¸ºä¸¤ä¸ªæ°æ±åï¼å¹¶è¿åã
requestä¸bodyçæ ¼å¼ä¸ºï¼
responseçæ ¼å¼ä¸ºï¼
responseä¸ï¼æ们çæ°æ®ç»æç¨å¾®æç¹å¤æã
ä¹åæ们ææçRESTAPIé½ä¼ä»¥è¿ç§ç»ä¸çæ ¼å¼è¿åæ°æ®ï¼ä¸¤ä¸ªä¸åRESTAPIæè¿åå 容ç主è¦åºå«å¨dataåä¸ã
å¨ï¼ä¸ï¼ä¸ï¼æ们建ç«äºä¸ä¸ªå«åtask_platformçDjango项ç®ãç®å½ç»æå¦ä¸ï¼
è¿å ¥Django项ç®ç®å½ï¼å¹¶ç¼è¾task_platformä¸çviews.pyæ件ã
å ¶ä¸ï¼
ç¼è¾task_platform/urls.pyï¼å°æ们ååå®ç°çAPIå¤çå½æ°å å ¥å°è·¯ç±è¡¨ä¸ã
è¿è¡Djangoserverï¼
ç¨Postman模æ请æ±ï¼å¯ä»¥çå°ï¼
ç»è¿ç»ä¹ ï¼æ们已ç»äºè§£å¦ä½å®ç°ä¸ä¸ªç®åçRESTAPIäºï¼æ们ä¹åçAPIé½æ¯å»ºç«å¨è¿ä¸ªé讯模åä¹ä¸çï¼å½ç¶è¿æä¸äºä½¿ç¨GETæ¹æ³çAPIï¼ãå¨åé¢ï¼æ们å°ççï¼å¦ä½éè¿è¿ç§æ¨¡å¼ï¼å®ç°ä¸ä¸ªç¨æ·è®¤è¯ç³»ç»çRESTAPIã
Python3.7é åDjango2.0æ¥è°ç¨éé(dingding)å¨çº¿apiå®æ¶çæµåå·¥èå¤æå¡æ åµæ°å ç«æ æé´ï¼å¤§å¤æ°å ¬å¸ä¸ºäºé¿å 交åææé½æå¤æå°çéç¨äºè¿ç¨åå ¬çæ¹å¼ï¼è¿æ¾ç¶æ¯ä¸ä¸ªææºçéæ©ï¼åºæ¬ä¸éé(dingding)ä½ä¸ºä¸ä¸ªè¿ç¨åå ¬å¹³å°æ¥ç¨çè¯ï¼è½ç¶å·®å¼ºäººæï¼ä½æ¯å¥ä½å¸é¢ä¸æ²¡æå¥æ´å¥½çéæ©ï¼ç¬åéæå°åï¼ä¹è¿æ¯å¯ä»¥ååç¨çï¼ä¸è¿è¿ç¨åå ¬æ个é®é¢ï¼å°±æ¯æ¯å¤©éè¦æ£æ¥åå·¥çèå¤ï¼å± 家åå ¬è½ç¶çµæ´»ï¼ä½æ¯å¤§å®¶ç©¶ç«æ没æåå ¬ï¼åæ¯å¦å¤ä¸åäºï¼ééæä¾ç解å³æ¹æ¡å°±æ¯èå¤å¨çº¿æå¡åè½ï¼ä½æ¯æ£æ¥åºå¤ééå¨ç§»å¨ç«¯å°±æç¹è´¹å²ï¼éè¦å¨ééappéç¹å»è³å°5次,è¿ä¸è½å®æ¶å·æ°ï¼pc端çééoaç³»ç»åçæ´çï¼è¿ä¸å¦ç§»å¨ç«¯æ¥å¾æ¹ä¾¿ï¼å¦å¤å¦æä½ å¨ä¸å®¶ä¸å人çä¼ä¸éï¼è¿å®¶ä¼ä¸æ大大å°å°å å个é¨é¨ï¼ä½ åé常åéçæ ä»»è¿å®¶å ¬å¸ç人äºä¸»ç®¡ï¼æ¯å¤©æé¨é¨æ¥åºåå·¥èå¤æ¥è¡¨å°±ä¸æ¯ä¸ä»¶å®¹æäºäºï¼æ以å©ç¨ééå¼æ¾çæ¥å£ï¼ä½¿ç¨Djangoèªå·±æé ä¸å¥å®æ¶çæ§åå·¥èå¤çwebå¹³å°æ¯æ们æ¬æ¬¡çç®çã
项ç®èæ¯æ¯ä¸å®¶æ®éç§æå ¬å¸ï¼å¤§æ¦æäºä¸ªé¨é¨ï¼æ¯ä¸ªé¨é¨äººå·¦å³
é¦å è¿å ¥ééå¼æ¾å¹³å°:open-dev.dingtalk.com
å¨ä¼ä¸å é¨å¼åä¸ï¼éæ©å°ç¨åºï¼æ°å»ºä¸ä¸ªå°ç¨åºåºç¨ï¼è¿éå ¶å®ä¹è¿æå«çéæ©ï¼æ¯å¦h5å¾®åºç¨ï¼ä¸»è¦æ¯å°ç¨åºå ¼å®¹æ§æ´å¥½ä¸ç¹ã
å¡«ååºç¨çå称ãç®ä»ãLogoçåºæ¬ä¿¡æ¯è¿äºæä¸ä¸è¡¨ï¼æç §è¦æ±å¡«åå³å¯ï¼ä¹ä¸å¿ éå¾å¡«åçå®ä¿¡æ¯ï¼è¿éæ个åå°±æ¯ä¸å®ä¸è¦å¿äºé ç½®å®å ¨ååæè ipï¼å®å ¨ååæ¯å½æ们çæ£æµå¹³å°ä¸çº¿çæ¶åé¨ç½²çååï¼åºç¨å¯ä»¥è·æå®çååè¿è¡ç½ç»éä¿¡ï¼å¦æä¸é ç½®çè¯ï¼è¯·æ±ééæ¥å£ä¼æ¥é误ã
å¦å¤è¿æä¸ä¸ªåï¼ä¹å°±æ¯ééé»è®¤å¼æ¾çæ¥å£ä» éäºåºç¡æéæ¥å£
å¦æéè¦èå¤æè ç¾å°æ¥å£çè¯ï¼è¿å¾åç¬ç¹å»ç³è¯·ï¼è¿å°±æç¹è®©äººçä¸æäºï¼é£ä¹å¤æ¥å£ï¼å ¨é½å¾é ç¨é¼ æ ç¹å»å¼éï¼ä¸å¼éå°±ç¨ä¸äºï¼è¿ä¸ªç¨æ·ä½éªçæ¯è®©äººéå¸¸é ¸ç½ï¼äº§å设计æè¿æ ·ï¼ééçpmé¾è¾å ¶åã
OKï¼åç½®åå¤å·¥ä½å°±å·²ç»å°±ç»ªäºï¼ç°å¨æ们åªè¦æ ¹æ®å®æ¹ææ¡£æ¥åæ¥å£å°±å¯ä»¥äºï¼éæ©æå¡ç«¯apiææ¡£ï¼
ééèå¤æå¡çæ¥å£è¯´ææ¯è¿æ ·çï¼
è¿éæ¯ä¸ªæ¥å£é½éè¦ä¸ä¸ªaccess_tokenç¨æ¥é´æï¼è¿ä¸ªtokenæ¯ç¨idåç§é¥éè¿æ¥å£äº¤æ¢åæ¥çï¼å ·ä½å¨åºç¨è¯¦æ éå¯ä»¥è·å
è¿éæ们å°è£ ææ¹æ³
æå®äºtokenï¼è¿éè¦è·åæ¨çé¨é¨ä¸ææåå·¥çåå·¥idï¼å 为èå¤æ¥å£åæ°åªè½æ¥ååå·¥idï¼èéé¨é¨id
æå请æ±èå¤æ¥å£å³å¯
å®æ´çåå°Djangoåå°æ¥å£
è¿æ ·ï¼å°±å¯ä»¥æå¿«çéè¿çº¿ä¸å¹³å°æ¥å®æ¶çæµé¨é¨åå·¥èå¤äºï¼æææ¯è¿æ ·ç:
DjangoRESTframeworkæ¡æ¶ä¹GET,POST,PUT,PATCH,DELETEçAPI请æ±æ¥å£è®¾è®¡
ä¸ãAPIæ¥å£åè½éæ±ï¼è®¾è®¡ä¸äºæ¥å£URLï¼è®©å端/客æ·è¯·æ±è¿ä¸ªURLå»è·åæ°æ®å¹¶æ¾ç¤ºï¼æ´æ¹æ°æ®ï¼å¢å æ¹æ¥ï¼ï¼è¾¾å°åå端å离çææ
äºã设计é»è¾ï¼éè¿httpå议请æ±æ¹å¼GETãPOSTãPUTãPATCHãDELETE设计符åRESTfulè§èçapiæ¥å£ä¹å°±æ¯URL
ä¸ãç®ææºç ï¼
3.åºååserializers
#å¯¼å ¥æ¨¡åç±»årest_frameworkåºåå模åserializers
from.modelsimportArticle
fromrest_frameworkimportserializers
#å®ä¹åºååç±»ï¼ä½¿ç¨ç»§æ¿ModelSerializeræ¹æ³
classArticleSerializer(serializers.ModelSerializer):
classMeta:
model=Article#æå®åºååç模åç±»
fields='_all_'#éååºååå段ï¼æ¤å¤å¯èªè¡éåå段
4.è§å¾å½æ°views
fromdjango.httpimportHttpResponse
fromdjango.views.decorators.csrfimportcsrf_exempt
from.modelsimportArticle
from.serializersimportArticleSerializer
fromrest_framework.renderersimportJSONRenderer
fromrest_framework.parsersimportJSONParser
#è°ç¨csrfè£ é¥°å¨csrf_exempt模åï¼è§£å³è·¨å访é®é®é¢
#JSONRendererå®å°Pythonçdict转æ¢ä¸ºJSONè¿åç»å®¢æ·ç«¯
#JSONParserè´è´£å°è¯·æ±æ¥æ¶çJSONæ°æ®è½¬æ¢ä¸ºdict
#åæ³ä¸
#å¨éè¦è·¨åçè§å¾ä¸è°ç¨è£ 饰å¨@csrf_exempt
@csrf_exempt
defarticle_list(request):
ifrequest.method=='GET':
arts=Article.objects.all()#è·å模åç±»æ°æ®
ser=ArticleSerializer(instance=arts,many=True)#åºååæ°æ®instance
#ä¸ä¸æ¥ç¨rest_frameworkæ¹æ³éçJSONRendereræ¹æ³æ¸²ææ°æ®
json_data=JSONRenderer().render(ser.data)
returnHttpResponse(json_data,content_type='application/json',status=)
#åæ³äº
classJSONResponse(HttpResponse):
def_init(self,data,**kwargs):
content=JSONRenderer().render(data)
kwargs['content_type']='application/json'
super(JSONResponse,self)._init(content,**kwargs)
#æ ¹æ®idè¿è¡å¢å æ¹æä½æ¥å£
@csrf_exempt
defarticle_detail(request,id):
try:
art=Article.objects.get(id=id)
exceptArticle.DoesNotExistase:
returnHttpResponse(status=)
å¤æ³¨ï¼
*åæ³äºä¸å®ä¹JSONResponseç±»å°è¿åçæ°æ®dataä¸content_typeè¿åç±»ååäºå°è£
*APIæ¥å£
GET/POST
GET/PUT/PATCH/DELETE
*Postmanæµè¯ææå¾
djangoå¦ä½å°è£ apiçä»ç»å°±èå°è¿éå§ï¼æè°¢ä½ è±æ¶é´é 读æ¬ç«å 容ï¼æ´å¤å ³äºdjangoå°è£ exeãdjangoå¦ä½å°è£ apiçä¿¡æ¯å«å¿äºå¨æ¬ç«è¿è¡æ¥æ¾åã
考勤管理系统
考勤系统,在包含薪资计算模块的情况下,可以灵活定义各个工资项目的计算公式,自动调用员工的出勤数据、人员资料、就餐等与工资相关的数据,计算出员工的工资情况,可提供银行代发工资所需的相关文件。同时提供丰富的统计分析报表,可即时掌握企业工资支出情况。
RQHR基于拥有自主版权的RQBuilder开发平台开发,它具有鲜明的技术特点及众多成熟的解决方案。
1. 真正在线式二次开发,面向对象的脚本语言,可视化开发环境,功能可无限扩充,客户可轻松摆脱对源代码的依赖;
2. 系统界面可自由定义,界面布局大方得体,操作方式全面符合Windows标准,操作灵活方便;
3. C/S体系架构, 具有强大的SQL Sever数据库管理功能;可以控制管理数据库, 表,索引,触发器,规则约束及存储过程等,我们提供的RQHR系统标准数据库具有详尽的数据完整性约束,杜绝非法数据进入系统。
4. 整个系统中所有的繁杂的计算工作全部交由SQL Server后台计算。
5. 多语言支持,自适应简体、繁体及英文操作系统等;
6. 录入资料方便快捷,全面支持批量录入资料;
7. 自定义的界面, 实现个性化的操作向导, 动态切换操作风格以满足不同的需求
8. 自定义的功能模块, 添加新的模块控制极为轻松愉快;
9. 自定义的报表与统计图,可对报表数据进行动态变换, 统计分析以及作图形输出;
. 自定义的代码表,使用各种人事资料的录入更为轻松;
. 强大快捷的动态化查询无处不在,自动保存历史查询,众多友好的操作向导;
. 所有的数据都可与Excel, Access等数据作双向导入导出;
. 全面严谨的系统权限及安全控制,审核机制完善;
. 支持多个帐套,可以动态切换帐套,方便集团化的企业管理。
. 万能适应各种人力资源管理模式,快速上线,可维护性很好;
. 全面支持无限层次的部门组织架构,可快速对任一层的数据进行统计报表
. 对各种人事资料进行分析、统计、预警;
. 全面、精确、快捷的考勤分析,包罗万象的上班模式,大大简化考勤效率;
. 考勤单据的录入全面支持人个,群组录入及反录入,大幅提升工作效率。
. 考勤规则全面,深入,细致,体贴。
. 自定义工资表,工资项目计算方法及形形色色的工资报表;
. 方便的厂牌、工卡制作,万能挂接各型号的刷卡机器;
. 考勤、就餐、门禁一卡通,支持IC卡消费卡模式;
. 自定义的统计结算周期
. 无限层次的组织架构图
. 工号,卡号的变更处理
. 照片的显示及打印处理
. 培训,绩效与考核的管理
. 动态的异动、离职资料处理方案
. 新员工的自动转正及定期调薪的处理方案
. 待聘员工资料库的管理
. 人才储备资料库的管理
. 工号变更,部门变更及离职对汇总报表影响的解决方案
. 薪资异动对薪资计算的影响解决方案
. 计件计时异动对考勤、薪资计算的影响解决方案
. 部门异动对考勤、薪资计算的影响解决方案
. 实时可靠采集刷卡数据的方案
. 累计项目(如按金,积假,年休)的薪资自动设置
. 超长时间上下班打卡的可靠解决方案
. 电脑自动化排班或不排班的解决方案
. 各种模式的轮班解决方案
. 无限制的加班类别及请假类别
. 动态的班别(如大夜班,小夜班等)的算法定义
. 对劳动法规的合理解决方案
. 薪资发放报表所需各种货币的数据报表
. 对薪资尾数的处理方案
. 自定义的个人所得税税率
. 多供应商的就餐汇总
. 可选的界面风格,报表风格
. 其它的子系统的如图书管理,水电管理,宿舍管理,停车管理,巡更管理等
在线求高手给个学生考勤管理系统的简单点的C语言源代码!
这个是我很早以前写的还找到了,给你算了,很简单的一个东西
#include "stdio.h"
#include "string.h"
int main()
{
char name[][8];
int grade[][4];
int zm=0;
int ze=0;
int zc=0;
int zz=0;
int n;
int i;
printf("Please input the nummber of students:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Please input the %dth student's name:",i+1);
scanf("%s",&name[i]);
printf("Please input the %dth student's Math score:");
scanf("%d",&grade[i][0]);
printf("Please input the %dth student's English score:");
scanf("%d",&grade[i][1]);
printf("Please input the %dth student's Computer score:");
scanf("%d",&grade[i][2]);
grade[i][3]=grade[i][0]+grade[i][1]+grade[i][2];
}
printf("Name Math Enlish Computer total\n");
for(i=0;i<n;i++)
printf("%s\t%d\t%d\t%d\t %d\t\n",name[i],grade[i][0],grade[i][1],grade[i][2],grade[i][3]);
return 0;
}
钉钉如何有效防止员工考勤打卡时进行违规作弊呢?
钉钉如何确保员工考勤打卡的真实性和公正性? 在数字化时代,员工考勤打卡的透明度成为了企业管理的一大挑战。尽管钉钉作为一款企业级应用,其初衷是提高考勤效率,但技术的灵活性也意味着可能存在作弊的可能性。毕竟,任何由用户操控的设备所报告的信息,都可能被操控或伪造。例如,市面上存在着名为GPS信号发射器的设备,它能以假乱真地模拟出精确的地理位置,即使手机上并未安装任何特殊软件,也能让考勤系统“看到”你在公司。这种情况下,单纯依赖手机软件进行考勤验证是远远不够的。 即使没有外部设备,考勤系统依赖的是手机报告的地理位置,但系统的源代码并非铁板一块,开发者可以自行编写和修改。这意味着,即使系统报告的地点信息是真实的,也有可能被篡改。目前市面上主流的企业级应用UI,不少都有开源版本可供下载,这无疑增加了破解考勤系统防线的难度。 为了有效防止这种违规行为,公司需要采取更实质性的措施。放弃对手机打卡的依赖,引入实体考勤机是解决之道。通过实体考勤机,员工的打卡行为将直接与物理设备关联,大大降低了作弊的可能性。而且,这不仅能确保考勤的公正性,还能提升管理的直观性和规范性。 当然,技术的更新和管理策略的配合同样重要。企业需要结合现代科技与传统管理手段,建立完善的考勤监控体系,同时加强员工的诚信教育,以营造一个公平、公正的工作环境。对于寻求企业级考勤解决方案的公司,值得考虑的是像微信企业版这样的产品,它们不仅支持实体考勤机,还能提供全面的考勤管理功能,以应对复杂的考勤需求。 综上所述,钉钉及类似应用在防止员工考勤作弊上,需要综合运用技术手段和管理策略,以确保考勤的真实性,维护企业的正常运营秩序。