Cross-Origin Resource Sharing (CORS) je bezpečnostní mechanismus, který umožňuje webovým stránkám z jednoho zdroje přistupovat k datům ze serverů s jiným zdrojem. Bez CORS by takový přístup byl zakázán kvůli bezpečnostním důvodům. CORS tedy umožňuje…
在开发大型系统(如企业应用程序、共享软件包、库......)的过程中,多个层次和开发人员相互沟通,出现了如何处理新代码版本发布的问题。
让我们看一个例子,我们想为一个社区的开发者开发一个共享的Composer包。
语义版本管理
在解决后向和前向兼容性问题之前,我们需要弄清楚如何跟踪软件的变化。目前(2022年),将所有的改动都放到Git中是最好的方式。软件库可以共享,例如,通过GitHub或GitLab。每个软件变更都有一个唯一的标识符,用于识别每个提交,并描述实际发生的情况。…
在向知识渊博、经验丰富的项目负责人咨询时,我经常遇到数字项目的长期可持续性问题。许多超过3年开发的大型项目开始变得内部过时,不再具有可持续性--现在想象一下,一个由知识、经验和最重要的勤奋程度不同的开发人员组成的团队。
为了使你的数字项目在技术上保持最高水平,你需要。
有能力的开发人员和一个项目经理,他们有很好的沟通,每个人都知道自己在做什么,以及对其他人有什么影响。
功能工具和工作流程,整个团队都知道,并相应地调整他们的工作给他人。
…
由于你已经开发了一段时间的网络应用程序,你可能已经注意到,许多事情对你来说是例行公事式的重复,尽管它们不应该是这样。很多时候,它是技术项目管理、文件版本管理、自动代码审查、各种数据处理,或者可能是部署到服务器和围绕这些的安全问题。
在公司的咨询中,我经常遇到这样的问题,即预防被大大低估了。原因往往是开发人员认为有些事情非常具有挑战性,会给他们增加工作。但事实是,你通常只需要设置一次整个设置,然后就可以获得长期的收益。
什么是CI(持续集成)?
CI…
在PHP中,在基本水平上检测一个IP地址是非常容易的。
echo '你知道,你的IP地址是' . $_SERVER['REMOTE_ADDR'] . '?';
**警告:**获取IP地址作为$_SERVER['REMOTE_ADDR']字段的关键,只有当PHP是从浏览器中调用时才可能。在CLI模式下(例如,从终端与cron运行),IP地址是不可用的(这是有道理的,因为没有进行网络请求)。
可靠的IP地址发现
经过多年的发展,我终于坚持了这种实现方式。
function getIp():…
Funkce eval slouží ke spuštění předaného řetězce jako PHP kódu.
Návrh jazyka PHP a praktické vlastnosti
PHP je interpretovaný jazyk, což znamená zejména to, že se jeho kód vyhodnocuje tzv. interpretem, což je speciální typ programu, který čte…
如果你认真地开发网络应用程序,并且该网站以后将在互联网上提供,那么解决安全问题是非常重要的。
现实上,下列威胁正等待着开发者。
应用程序有一个内部错误,例如,因为程序员在编写代码时犯了一个错误,他或她没有注意到,或者它只是 "有时 "表现出来
服务器有一个错误的配置或环境已经改变,因为服务器管理员改变了服务器的行为,而网站没有适应它。或者,我们正在部署到一个新的机器上,不知道确切的配置。
有人试图攻击**,要么是外部攻击者,要么是系统内的前雇员。
…
散列过程(与加密相反)从输入中产生一个输出,从该输出中不能再得出原始字符串。
因此,它非常适用于保护敏感字符串、密码和校验。
散列函数的另一个很好的特点是,它们总是产生相同长度的输出,输入的一个小变化总是完全改变整个输出。
哈希函数
在 PHP 中有许多哈希函数,重要的有:。
Bcrypt: password_hash() - 最安全的密码散列,计算速度很慢,使用内部盐和迭代散列。
md5() - 非常快的函数,适合于文件散列。输出始终为32个字符。
sha1() -…
**警告:**这篇文章是多年前写的,一些信息可能已经过时或不正确。阅读时请牢记这一点。
凯撒密码是最简单的散列函数之一。在它的时代,它几乎是牢不可破的,但在现代计算机时代,只需要几十秒,甚至几分钟,就可以打破它。它基于一个密钥,根据该密钥对信息进行加密,然后根据该密钥可以再次扩展。因此,密钥是秘密的。在加密的时候,信息可以被看到,将没有任何意义(只是一个杂乱的字符)。破解密码的唯一方法是猜出密钥。
关键…
MD5是一个非常常用的计算哈希值的函数。
初学者经常将其用于密码散列,这并不是一个好主意,因为有许多方法可以检索到原始密码。
本文介绍了这样做的具体方法。
时间的复杂性
所有的安全都是建立在尝试所有密码所需的时间过长这一事实之上。嗯,应该这样。特别是md5()算法的问题是,它是一个非常快的函数。在一台正常的计算机上,每秒计算超过一百万个哈希值是没有问题的。
如果我们通过逐一尝试组合来破解密码,这就是**的暴力攻击。
裂解方法
有几种策略。
顺序试错(蛮力攻击)。
测试字典密码…
通常情况下,我们可能想在一个页面上附加一个文件,而这个文件已经存储在其他地方的磁盘上。如果我们直接在attach函数中输入它的确切名称,就没有什么可担心的。
安全地附加一个文件
include 'menu.html';
前面的写法是完全安全的,因为我们总是挂载同一个文件。在这种情况下不能发生安全错误。唯一可能发生的问题是没有menu.html文件,这将触发一条警告信息(反正可能不会出现),但这种情况很少,因为我们通常会附上一个几乎确定存在的文件。
根据模式附加一个文件…
支持PHP4、PHP5
addcslashes - C风格的斜线字符串
描述
string addcslashes (string $str, string $charlist)
返回一个在charlist参数中指定的字符前带有反斜线的字符串。
参数
str 文本字符串
charlist
要删除的字符。如果charlist包含字符n,r,和其他字符,它们将被转换为C-style。其他长度小于32和大于126的非字母数字ASCI字符的变化。…