Python安全攻防之第二章Python语言基础
全部标签 情况是这样的:我们有一堆python脚本不断地做事并最终在mysql中写入数据,我们需要一个日志来分析错误率和脚本性能。我们还有与mysql数据交互的php前端,我们还需要记录用户操作,以便我们可以分析他们的行为,并计算一些评分函数。所以我们想到了每个案例都有一个mysql表(一个用于“python脚本”日志,一个用于“用户操作”日志)。理想情况下,出于性能和低延迟的原因,我们将异步写入这些日志表。有没有办法在Python(我们使用djangoORM)和PHP(我们使用YiiFramework)中做到这一点?有没有更好的方法来解决这个问题?更新:对于用户操作(WebUI),我们现在正在
我刚刚和一个同事吵架了。我的index.php包含我的mysql连接,因此也包含主机、用户名、密码和数据库名称。他声称这是一个安全线程,因为php解析器可能会失败,这会导致网络服务器将整个文件作为纯文本返回。然而,我相信如果php解析器失败,网络服务器会给用户一个内部服务器错误。谁能确认它是否存在安全风险?谢谢。 最佳答案 简短的回答是否定的。长答案是肯定的,但前提是:您的服务器已被入侵,在这种情况下,阅读您的php文件的人是您最不担心的您错误地配置了服务器来解析.php文件和纯文本,这确实非常愚蠢。此外,如果您正在使用某种版本控制
我们有一些相当大的数据导入脚本(Symfony“命令”)由于Monolog内存不足而出错(第58行的vendor\monolog\src\Monolog\Formatter\LineFormatter.php)。我们通常使用Monolog,所以不想完全禁用它。 最佳答案 我意识到这是一个老问题,但是当我遇到一个长时间运行的、使用Monolog的脚本产生内存不足错误的问题时,结果证明问题是Monolog的“fingers_crossed”处理程序缓冲了大量日志消息.我通过为有问题的Monolog处理程序设置“buffer_size”变
我们有一个系统必须执行用户输入提供的计算。我发现进行其中一种计算的最简单方法是eval——尝试找出一个解析器用于:(3+6)/2+27*5/2只是看起来很难。如果有人对此有解决方案-我很乐意听到。假设您要使用EVAL(我知道它的可怕功能),允许他们在该框中键入他们想要的任何内容将是一个主要的不安全因素。所以,我提出这个问题,如果我做一个正则表达式,删除除数字、标准运算符(+-/*)和括号之外的所有内容,比如$equation=preg_replace('/[^0-9+-\/*()]/','',$input_equation);$result=eval($equation);系统是否可能
我正在散列密码、在读取session数据时匹配用户代理,以及安全登录用户所需的一切。我对安全检索/读取session数据的方法很感兴趣。例如,我正在使用一个从session数据数组中获取用户ID的函数...在数据库表中:a:6:{s:9:"user_data";s:0:"";s:7:"user_id";s:1:"3";s:9:"firstname";s:4:"Tina";s:8:"lastname";s:3:"Fey";s:8:"username";s:8:"lizlemon";s:6:"status";s:1:"1";}函数(代码点火器):functionget_user_id(){
我已经为这类问题苦苦挣扎了一段时间,似乎找不到任何信息或示例代码来在PHP和JavaScript之间传输一些数据。我看到了很多方法来做到这一点,但并不安全。我的意思是,当您在系统之间传输一些可变数据时,它会在加载时直接显示在页面的查看源窗口中。真正需要的是一种传输数据的方法,但要安静且安全地进行,以便在加载页面时它不会显示在用户端。简而言之,有没有办法做到这一点,可能怎么做?我已经尝试过,使用XML文件传输数据,也使用JSON,直接使用echo+,或者在php中的?>缩写之后。但是到目前为止,我使用的每一种方式都会在加载时显示在页面的源代码中。 最佳答案
我将制作一个简单的网络应用程序。它最多只有几页,应用程序的主要重点是调用API并使用该信息执行操作。我想知道确保apikey安全的最佳方法是什么。我可以使用非常轻量级的框架吗?我应该只在根目录下创建一个php页面吗?我可以使用codeigniter构建一些东西,但这似乎无法满足我的需要。 最佳答案 将APIkey保存在Web根目录之外的文件中。然后将该文件包含在需要使用它的任何文件中。通过将其置于Web根目录之外,无法通过Web浏览器或其他类似方式直接访问它。 关于php-如何安全地使用
我想制作一个函数来检测/验证一个字符串至少有2个单词,并且每个单词至少有2个字母(除了这两个字母,它可以包含任何其他字符{withoutnumbers},但我不关心哪个和多少)。现在,我不确定我是否应该为此使用正则表达式或者我可以用其他方式做到这一点。如果我需要为它制作正则表达式,我也不知道该怎么做,因为我需要检查所有可用的字母。这是我现在得到的正则表达式[A-Za-z]{2,}(\s[A-Za-z]{2,})验证2个单词和2个字母至少在每个单词中。编辑:重新考虑后,我决定支持大多数语言,因为kr-jp-cn语言与其他语言的工作方式不同。我的主要规则不会让kr-jp-cn字母算作字母,
在我的codeingiterWeb应用程序中,目录“application”和“system”内的每个子目录都有一个index.html文件。在这个HTML文件中,有一条看起来像是标准错误消息的内容。它包含以下代码:403ForbiddenDirectoryaccessisforbidden.我假设创建这些文件是为了如果有人试图访问“应用程序”或“系统”中的目录,它不会列出所有文件,而是会显示错误。这些似乎是多余的,因为我在每个目录中添加了一个.htaccess以拒绝所有访问。这两个目录中的每个PHP文件也有第一行:if(!defined('BASEPATH'))exit('Nodir
我是一名技术作家,曾编写过大量HTML/CSS,但曾被投入高压锅中用PHP重写Web应用程序,并且做得相当不错,但我有点担心安全性。具体来说,主页是INDEX.PHP,用户登录的地方。一旦他们登录,页面会重写自身的部分内容,并显示未登录用户不可用的菜单选项。大约50%用户将永远不需要登录,因为他们将查看不需要安全性的公共(public)文档。其他50%的用户将限制对某些文档/页面的查看访问,并能够写入数据库。我的所有这些工作正常,但我担心我正在做的两件事以及它们是否正确:登录用户可能会被重定向到另一个页面,例如PAGE1.PHP。我不希望他们能够保存PAGE1.PHP的URL并直接转到