草庐IT

安全攻防

全部标签

php - 与 mysql_query 相比,使用 PDO::query 是否有任何安全优势?

我想重构一些遗留的PHP代码,我知道PDO通过添加准备好的语句等更安全,但我想知道使用PDO::是否有任何安全优势query()方法与mysql_query()方法。有吗? 最佳答案 除了PDO或mysql_*中的错误外,数据库查询的安全问题取决于正在运行的查询,而不是用于连接到数据库的内容。如果您使用userdata创建一个不安全的查询并使用PDO::query()执行它,它与使用mysql_query()一样不安全。同样,如果您有安全查询,使用PDO::query()运行它实际上与使用mysql_query()相同。

php - json_decode 安全

与eval()相比,PHP的json_decode()是否安全?eval()函数可以运行代码,但json_decode()也可以吗? 最佳答案 自JSON只能表示数据,json_decode不会执行php代码。但是,就像任何其他函数一样,json_decode的实现可能存在错误并允许任意(二进制,而不是(仅)php)代码执行,例如bufferoverflow.由于相对简单且使用广泛的代码,这种情况不太可能发生,您无法或应该在php程序中做任何事情来缓解这种情况。 关于php-json_d

php - IonCube 额外的安全层 ?

我现在正在开发一个php项目(InternetShop),该项目可能会处理存储本地客户信用卡信息的问题。所以我在考虑用IonCube加密php文件,特别是那些包含设置(加密/解密key,IV)的文件对称加密算法。所以我不确定它是否会增加额外的安全层,因为它看起来是IonCube加密的文件和类似的解决方案可以被解密。谢谢! 最佳答案 IonCube不是合适的解决方案。如果您对包含以下内容的文件进行编码:恢复secret值仍然是微不足道的:所以IonCube编码在这里基本上没有值(value)。

php - 如何构建 PHP 内容以用于非安全 (http ://) and secure (https://) areas and across multiple directories?

我有一个包含链接和图像的页脚文件。该文件用于我的主页和多个目录中。用户登录后,它还会用于我网站(https://)的安全部分。组织链接的最佳方式是(1)它们可以用于我网站的非安全(http://)和安全(https://)区域,同时(2)也能够在我的网站的不同目录中使用include吗?似乎为了满足我的第一个要求(1),我不得不使用相对链接;但是,为了满足我的第二个要求(2),我需要使用绝对链接。如果您能提供任何帮助,那就太好了!/media/sample-image.png"/> 最佳答案 只需使用//example.com/fo

php - PHP session 是否足够安全以自行登录?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatdoIneedtostoreinthephpsessionwhenuserloggedin?我想使用phpsession让用户登录。验证他们的身份后,我会将他们的user_id和has_logged_in存储在session中。为了验证他们是否已登录,我会检查他们的用户ID是否已设置并且has_logged_in是否为真。有时,我会通过session_regenerate_id(true)重新生成sessionID。这本身是否足够安全,还是我必须采取进一步措施来防止劫持和其他session安全漏洞?

php - 安全地评估简单的数学

我想知道是否有一种安全的方法来评估数学2+210000+1200010000-202+240-20+23-12无需使用eval()因为输入可以来自任何用户。我需要实现的只是整数的加法和减法。是否有任何已经存在的片段,或者我没有遇到过的任何PHP函数? 最佳答案 考虑到PHP中可用的各种数学函数,我会质疑使用eval。您说过您只想做简单的数学运算——使用eval的唯一原因是执行更复杂的操作,或者从用户那里接受完整的方程式。如果你只是想加或减,用intval清理输入然后去镇上:$number1='100';$number2='shell

php - 使 $_POST 数据安全地发送到电子邮件

我了解mysql_real_escape_string等,但是当我只是发送电子邮件时呢?所以我有表单和文本框,直接将$_POST数据通过电子邮件发送给用户是否存在任何漏洞?我猜他们将无法执行任何PHP..或者如果他们从网址运行它,他们可以吗?我不确定。 最佳答案 如果直接发送到电子邮件就可以了。如果它存储在数据库中以显示在帮助台等管理员页面上,则需要对html输出和mysql进行转义。您可以使用许多函数转义mysql:如果使用PDO,则使用prepare语句:http://php.net/manual/en/pdo.prepare.

php - Codeigniter 表单验证安全性

我们使用Codeigniter创建了一个项目,它非常酷且高效。CI具有良好的表单验证功能,有助于保护系统,但我很难找到使用规则的正确方法。请看下面假设ID是一个整数字段,这样我就可以设置$this->form_validation->set_rules("ID","FORMID","required|trim|integer");我认为这已经足够了,因为如果ID字段包含integer以外的内容,表单验证将返回错误。但是普通的FORM字段(文本区域或普通输入类型文本字段)的规则应该是什么,要求不允许使用HTML(或需要去除这些标签)XSS清理SQL注入(inject)预防我现在正在做$t

php - (double) $user_input 和 bind_param ('d' , $user_input 之间的安全差异

假设我要执行这样一个准备好的语句:$qry->prepare('UPDATEtable_nameSETcolumn1=?string_column=?WHEREcolumn3=?ANDcolumn4=?');$qry->bind_param('sbid',$string,$blob,$int,$double);$int='nonintvalue';/*gives0inthedatabase*/$blob='somestring';$string='anotherstring';$double=$double;$qry->execute();$qry->close();假设我只想执行一次

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密与SQLServer建立安全连接驱动版本最新JDBC驱动下载地址:JDBCdriver6.4forSQLServer(https://www.microsoft.com/zh-CN/download/details.aspx?id=56615,由图中可以看出,最低仅支持JRE7和SQLServer2008,需要其他版本请自行查找)1.SQLSERVER2000JDBC驱动程序:msbase.jar、mssqlserver.jar、msutil.jar。这