首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一步步教你编写不可维护的 PHP 代码

维护人员没有时间去理解你的代码。可维护的代码意味着能够在堆积如山的代码中快速定位到特定的部分,能够快速明白它是如何工作的并且在不破坏一些东西的情况下进行修改。你不能这样做。...命名相关 你的变量名应该起的神秘一些,最好只有一个字母。这样谁都无法通过简单的搜索找到需要的内容。 类名和方法最好也使用一个字母来定义。...西里尔字母就非常合适,因为有些字母看起来跟罗马字母一样, 但其实不是(所有这些:xopekacMEBCTAKXOPH)。...那么下面的输出是: $alert = 1; $аlert = 2; echo $alert; 如果第二个 alert 以西里尔字母 "a" 开头,则不可以!...重写 在不期望的情况下重写全局变量,尤其是超全局变量。尽早重写 $_GET 数组中的属性,多次重写,$_POST 亦是如此。在 $_REQUEST 上做一些不起眼的重写作为点缀。

86040

基于编码注入的对抗性NLP攻击

在撰写本文时,在英语到俄语模型中输入字符串“paypal”正确输出“PayPal”,但将输入中的拉丁字符 a 替换为西里尔字母 а 会错误地输出“папа”(英语中的“father”) ....发现生产搜索引擎不会解析不可见字符,并且可以通过精心设计的查询恶意定位。在最初撰写本文时,谷歌搜索“The meaning of life”返回了大约 9.9 亿条结果。...同形文字同形文字是呈现为相同字形或视觉上相似字形的字符。当在不同的语言系列中使用同一书面脚本的部分时,通常会发生这种情况。例如,考虑英语中使用的拉丁字母“A”。西里尔字母中使用了非常相似的字符“А”。...然后进行了差分进化,发现优化很快收敛,因此在遗传算法中使用了 32 的种群大小,最多 10 次迭代。进一步增加这些参数可能会让攻击者找到更有效的扰动;即实验结果获得了一个下限。...此外,它们可用于降低搜索引擎结果的质量并隐藏索引和过滤算法中的数据。

60010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    看不见的Unicode码让敏感词轻松逃过审核,谷歌IBM都中招

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI Unicode码作为全世界文字的统一编码,使用范围广,用它去对NLP模型做对抗攻击,可谓中招一大片。 就比如下面这个谷歌翻译: ?...再来一个同形文字的例子: 将“paypal”中第一个英文字母a换成西里尔字母a,尽管这俩人眼视觉上看起来是一样的,但Unicode码不同,谷歌俄语翻译最终就会将它翻译成 “папа”,也就是“爸爸”的意思...如何防止此类情况的发生 来自英国剑桥大学和加拿大多伦多大学的研究人员发现了上述机器学习模型中对输入文本处理的这一问题,在今年6月发表的一篇论文中进行了阐述。 ?...那面对自然语言模型的被对抗攻击,又该如何处理呢?...像那种从英文字母到西里尔字母的变化就更应该被严加注意。

    1K40

    我想给你介绍一个假的苹果网站

    它的原理是这样的:在希腊、西里尔、亚美尼亚这样的国家,他们的网址域名会用到一些“地方语言”,这时网址看起来虽然一样,但是电脑认为不同。...例如: 这里有三个看起来差不多的字符 :a、a、α ,但是第一个是西里尔语里的 a,第二个是英文里的 a、第三个是俄文里的 α (数学题里的阿尔法) 虽然看起来都是 A,但计算机显然把它们当成不同的字符来对待...说起来,中文域名其实也算是一种“奇奇怪怪的地方语言”,“丫头”的丫字也是字母 Y 的远房表亲 。 DNS 服务器很崩溃,它表示: 老子可看不懂这些乱七八糟的“方言”,它表示很崩溃。 ?...(注:DNS 即域名解析,通过网站域名来指向网站服务器IP) 为了让 DNS服务器能看懂这些“方言”,许多浏览器用一种叫 punycode 的编码方式, 把一些奇奇怪怪的“地方语言”翻译成网络 DNS服务器能懂的英文字符...“xn- ” 作为它的开头。

    1.5K40

    AWVS基本用法

    在相应参数位置按+添加注入点,让AWVS进行注入探测,可以dump有sql漏洞的数据库内容。 HTTP Editor ? 和BP repeater类似,可以进行手动漏洞挖掘探测。...类似于BP intruder,进行暴力破解,点击+选择类型,点击insert插入 注意:插入字母的时候选取字母的范围填写的是字母对应的ASCII码。...login sequence) AcuSensor Deployment: 要在服务器端布置angent进行扫描的一种独特的扫描方式 AcuSensor Deployment指明如何部署angent到服务端...修改.htaccess或php.ini使得agent在服务器上部署生效,这里改php.ini的auto_prepend_file为上述文件路径: php_value auto_prepend_file...Google hacking database基于搜索引擎的信息收集:谷歌黑客数据库,但需要设置代理(LAN Settings)。

    2.3K20

    【Elasticsearch系列】更改 Elasticsearch 用户密码的详细指南

    这篇文章详细解释了文件包含漏洞的原理,以及如何在实际的Web应用程序中发现和验证这类漏洞。...通过一些实际的示例,文章展示了如何通过修改文件扩展名来绕过某些安全限制,以及如何通过修改URL参数来实现文件包含攻击。 这篇文章不仅提供了丰富的技术细节,还强调了合法合规的重要性。...在现代应用程序开发中,Elasticsearch 作为一个强大的搜索引擎和数据分析工具,广泛应用于日志管理、数据检索和数据分析等场景。为了确保数据安全,定期更改用户密码是最佳实践之一。...密码强度: 新密码应符合安全标准,包含大写字母、小写字母、数字和特殊字符,建议长度在 8 位以上。...检查结果: 执行命令后,Elasticsearch 会返回操作结果。若返回{"acknowledged":true},则表示密码更改成功;否则请检查返回的错误信息,进行相应的排查。

    32010

    AWVS基本用法_awvs网页版使用教程

    Blind SQL Injector 在相应参数位置按+添加注入点,让AWVS进行注入探测,可以dump有sql漏洞的数据库内容。...HTTP Fuzzer 类似于BP intruder,进行暴力激活成功教程,点击+选择类型,点击insert插入 注意:插入字母的时候选取字母的范围填写的是字母对应的ASCII码。...指明如何部署angent到服务端, 点击生成AcuSensor后可以将对应的文件放置到服务器,放置到服务器后要更改文件的属主和属组: 修改.htaccess或php.ini使得agent在服务器上部署生效...,这里改php.ini的auto_prepend_file为上述文件路径: php_value auto_prepend_file ‘[path to acu_phpaspect.php file]’...Scan Settings Google hacking database基于搜索引擎的信息收集:谷歌黑客数据库,但需要设置代理(LAN Settings)。

    2K10

    python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端

    各语言各语言 都想进入 7-bit 日文假名拉丁字符西里尔字符都眼巴巴地等着地儿放新编码 比EBCDIC 好了很多 具体 好在哪里呢?...ASCII字母 连续性轻松判断字符 是否为 字母连续性 ascii的 大写字母 是连续的ascii的 小写字母 也是连续的还加了一些新字符进去反斜杠反斜杠 就是Bemer加到 ASCII当中的反斜杠 后来...space travel》最终 unix 和 c 诞生这IBM统治之下 PDP 小型机 是如何崛起的呢?...没有IBM的历史包袱 期待 改变采取了 ASA X3.4-1963 这个编码集DEC公司 确实崛起了除了 作为主机的小型机 DEC 也做 终端VT-100VT-100 系列终端 真的很潮PDP小型机...开始用 小型机网络蚕食 IBM大型机的份额ASCII在网络中 ASA X3.4-1963 成为 事实上的标准总结这次 回顾了 字符大战的结果 ibm 曾经的 EBCDIC 由于字符不连续的隐患 导致后续

    34400

    如何用CSS实现一个搜索引擎?

    一个很显然的例子:搜索引擎。 在搜索引擎中输入关键词,搜索引擎经过检索,返回关键词对应的数据. 既然道理都一样,那能不能用纯CSS实现一个搜索引擎呢?...别说,机(无)智(聊)的人还是很多的,真的有人搞了CSS实现的搜索引擎[1]。 在该搜索引擎中输入员工姓名,会显示员工信息。 本文来聊聊他是如何实现的。...这就是本搜索引擎的核心原理,理论上只要选择器规则越多,搜索结果就越丰富。 多个搜索结果 让我们继续扩展。...在搜索结果中用加粗字体替换常规字母 比如,输入mar的搜索结果应该为:Marion Aguirre。...将结果中的Mar替换为\e64d \e661 \e672,也就是自定义字体中对应Mar的粗体字母。 总结 按照这个设定,制约本搜索引擎的,只有作者的想象力了。

    65030

    Python一行命令生成数据分析报告

    安装 pip install pandas_profiling 使用 那么我们继续使用之前文章中使用过很多次的NBA数据集,还记得我们在介绍pandas使用的那篇文章中分很多章节去讲解如何使用pandas...pandas_profiling扩展了pandas DataFrame的功能,可以使用df.profile_report()进行快速的数据分析。只需要一行命令就能得到所有结果!...首先还是先导入数据 import pandas as pd import pandas_profiling nba = pd.read_csv('nba_all_elo.csv') 然后只用一行命令就能得到全部的数据分析结果...直方图 相关性矩阵 缺失值矩阵,计数,热图和缺失值树状图 文本分析:了解文本数据的类别(大写,空格),脚本(拉丁,西里尔字母)和块(ASCII) 当然我们还以将该报告保存为html,这样结合Django...可以快速将本次分析结果部署至云端随时随地查看!

    1.1K20

    【迅搜14】搜索技巧(四)搜索日志库及热门、推荐、纠错功能

    同时在搜索引擎的输入框打字的时候,也会有下拉框给出一些提示词。最后,如果我们打错字了,很多搜索引擎也会提供一些“您是不是想搜索xxxx”这样的提示。...这个 getCorrectedQuery() 方法只有一个参数,就是可以传入一个搜索词,然后就返回对应纠错结果的数组。...这一点也是大家需要注意的。 最后,“pmp 蒜法” 这个错得没边的搜索词,返回的纠正结果是“php算法”,总体来说还算是比较满意的。...比如前面的 “s” ,将返回结果数合成 “算法 数据结构与算法 数据库”这样空格分开的搜索语句。然后再配合 setFuzzy() 进行模糊查询。就能实现仅仅一个单字母实现的拼音+英文模糊查询效果了。...这个次数,并不一定是排序的最终依据,可以看到在默认 total 的情况下,热门词返回的结果“敏捷”这个44次反而是排第一位的。这里的具体排名算法没啥资料,不清楚是怎么弄的。如果再次运行会怎么样呢?

    18310

    怎么自定义服务器的404,如何自定义404页面

    404页面就是当用户输入了错误的链接时,返回的页面。而默认的404错误页面呆板麻木,让访问者感觉很挫败,可能会直接离开您的网站。...这对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎却是相当重要的。 搜索引擎通过HTTP状态码来识别网页的状态。...当搜索引擎获得了一个错误链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引。而如果返回200或302状态码,搜索引擎就会为该链接建立索引,这导致大量不同的链接指向了相同的网页内容。...结果是,搜索引擎对该网站的信任度大幅降低,很可能网站轻则被搜索引擎降权,重则会K掉网站。...6、至少要有一个主页的返回链接。这是实现友好反馈的最低限度。 7、在有效的帮助信息不足的情况下,如何通过访客的反馈弥补错误等等内容。 8、不要自动跳转,让用户来决定去向。

    1.6K10

    百度一下,背后可不只是简单的一下(上篇)

    今天张叔叔给大家科普一下百度一下是如何实现的。百度被称为中国最大的搜索引擎,全球最大的中文搜索引擎,这个的确不是吹嘘。百度每天处理的搜索请求量都是百亿级别,可以用手指数一下“个十百千万...”...搜索引擎到底如何实现的呢,带着问题和好奇心跟张叔叔一起学习吧。 搜索引擎最终提供给大家的是各种各样的搜索结果,那么这些结果从哪来的?...原因很简单,是因为词典前面有一个目录,可根据首字母进行查找,通过首字母可以大大的缩小查找范围,这样便可以快速的找到你要查找的词语了。...对于这四个词所在的网页求交集(交集就是大家都拥有的),最终发现A是最满足条件的结果,百度就把网页A返回给了你,当你点击打开A网页之后就看到了你想看到的信息。...那么如果只输入赵丽颖进行搜索,岂不是要返回网页A和网页B,那么返回顺序如何决定呢?百度搜索结果中的广告是如何返回的?是不是还要很多疑问,哈哈,且听下文分解。 欢迎转载,为社会主义建设添砖加瓦!

    70020

    深度 | 从任务到可视化,如何理解LSTM网络中的神经元

    一个单个字母可以被罗马化成多个拉丁字母或者拉丁字母的组合。例如,ch 组合代表西里尔字母中的ч或者亚美尼亚子母中的 չ,但是 c 和 h 各自又代表其他的东西。...分析神经元 我们尝试回答下面的两个问题: 网络如何处理具有几个可能的输出结果的例子?(例如 r => ր vs ռ 等等) 特定的神经元都解决了什么问题? 「t」是如何变成「ծ」的?...首先,我们使用一个特定的字符作为输入,另一个特定的字符作为输出。例如,我们对「t」是如何变成「ծ」比较感兴趣(我们知道 t 可以变成 տ、թ 或者ծ)。...神经元 是如何学习的? 在分析的第二部分我们阐释了在有歧义的情况中,每个神经元是如何起到帮助作用的。我们使用了可以被转写为不止一种亚美尼亚字母的拉丁字符集。...由于我们在训练神经网络时所用的损失函数并没有强制让神经元之间相互独立并且可解释,所以这是意料之中的。最近,为了得到更多的可解释性,已经有人尝试使用信息理论的正则化方法。

    1.2K40

    搜索引擎的工作原理

    ,并将查询结果返回给用户。...如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。...作为企业,会根据搜索引擎的知名度以及日流量来选择是否要投放广告等;作为普通网民,会根据搜索引擎的性能和技术来选择自己喜欢的引擎查找资料;作为技术人员,会把有代表性的搜索引擎作为研究对象。...继续,我们提交给GOOGLE查询“理论工具理论”,在看看返回结果,仍然是那么多返回文档,当然这个不能说明太多问题,那看看第一页返回结果的排序,看出来了吗?...这些信息会被看作是对Flash的描述信息。让搜索引擎更好的了解您flash的内容。

    1.4K20

    搜索引擎的技术架构

    如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。   ...如何快速响应用户的査 询? 如何使得搜索结果能够满足用户的信息需求? 这些都是搜索引擎面对的技术挑战。...查询词分析 搜索引擎的最重要目的是为用户提供准确全 面的搜索结果,如何响应用户査询并实时地提供准确结果构成了搜索引擎前台计算系统。...; 搜索结果排序 如果保存在缓存的信息无法满足用户需求,搜索引擎需要调用"网页排序"模快功能,根据用 户的査询实时计算哪些网页是满足用户信息需求的,并排序输出作为搜索结果。...结合以上两个考虑因素,就可以对网页进行排序,作为用户查询的搜索结果。 参考文献: 《这就是搜索引擎:核心技术详解》 《搜索引擎—信息检索实践》

    1.2K20

    运维必备 | Win批处理(Batch)编程常用DOS命令汇总收藏备查

    ,但是最好是有意义的字母啦,字母前加个:label用来表示这个字母是标签,goto命令就是根据这个:label来寻找下一步跳到到那里, 最好有一些注释说明这样你别人看起来才会理解你的意图。..., 即使用此命令可以让用户输入一个字符,从而运行不同的命令。...如果没有指定,工具只显示提示 温馨提示: 当用户选择/c中列举的选项时,列出的第一个选择返回 1,第二个选择返回 2,我们可%ERRORLEVEL%环境变量(类似与LINUX中$?)...如果该工具检测到错误状态,它会返回 255 的ERRORLEVEL 值, 如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。...示例演示: 1.在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列, 注意用if errorlevel判断返回值时, 要按返回值从高到低排列, 不能含有choice.bat关键字命名的bat

    1.8K20

    搜索引擎 – 永不过时的渗透神器

    Link:  link:thief.one可以返回所有和thief.one做了链接的URL。 site:  site:thief.one将返回所有和这个站有关的URL。...+  把google可能忽略的字列如查询范围。 -  把某个字忽略,例子:新加-坡。 ~  同意词。 .  单一的通配符。 *  通配符,可代表多个字母。 “”  精确查询。...domain=”qq.com” 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站。 host=”.gov.cn” 从url中搜索.gov.cn,注意搜索要用host作为名称。...port=”443” 查找对应443端口的资产。例: 查找对应443端口的资产。 ip=”1.1.1.1” 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。...搜索语法 DnsDB查询语法结构为条件1 条件2 条件3 …., 每个条件以空格间隔, DnsDB 会 把满足所有查询条件的结果返回给用户.

    2.4K30

    如何让Windows的命令行窗口CMD以及Powershell支持UTF8字符集(编码)

    我在CMD命令行窗口中运行PHP脚本时遇到输出中文乱码的问题,如下图: 起初我也是很迷茫,以为是PHP的问题,检查了脚本(客户端和服务端都是utf-8)编码已经统一了,为何还是乱码呢,卡壳很久之后突然反应过来会不会是...,都会选用unicode编码,常见的就是utf-8),比如我上面提到的PHP脚本。...那么我们应该如何做,才能切换CMD的编码呢,往下看: 在谷歌娘和度娘哪里问了一大圈,都说要把字体改成Lucida Console,可是哪里有什么Lucida Console这个字体,你们看,只有点阵字体和新宋体...比如,在默认的cmd窗口中,我们输入chcp,显示的将类似下图这样的结果,936(简体中文的意思): 然后去查各个编码集的代码页编号,找到UTF-8的代码也编号是:65001 那么我们的解决方法就出来了...国家(地区)/语言 代码页编号 美国/英语 437 日文 932 韩文 949 简体中文 936 繁体中文 950 UTF-8 65001 多语言(拉丁文Ⅰ) 850 斯拉夫语(拉丁文Ⅱ) 852 西里尔文

    2.8K30

    了不起的Unicode

    然后,我们再来一个让人匪夷所思的例子。在浏览器中,尝试复制如下代码,然后进行观察答案。结果是不是又再一次颠覆你的所学。..."Å" === "Å"; 平时,我们时不时的会提到UTF-8/UTF-16/UTF-32它们到底是个啥?又有啥关系和区别呢? 还有其他的例子就不一一列举了。之所以会出现这么多让人匪夷所思的结果。...它提供了一个 encode() 方法,接受一个字符串作为参数,并返回一个包含字节的 Uint8Array 对象。...如果将这些内容与 Unicode 表结合起来,我们将看到 英语使用 1 个字节进行编码, 西里尔字母、拉丁欧洲语言、希伯来语和阿拉伯语需要 2 个字节, 中文、日语、韩语、其他亚洲语言和表情符号需要 3...其中一个问题是「将本应呈现不同外观的字形分配给相同的码位」,比如西里尔字母的小写字母 K 和保加利亚的小写字母 K(都是 U+043A)。

    45930
    领券