草庐IT

SECURITY

全部标签

php - 将查询从 Android 发送到远程服务器数据库的正确方法

我在处理数据库方面不是很有经验。我有一个Android应用程序,它应该向远程数据库服务器(MySQL)发送查询并从中获取后续结果集。我实际上是通过以JSON格式向服务器发送查询来完成此操作的。服务器脚本(PHP)然后获取查询并执行它。然后将结果集再次解析为JSON并发送回Android应用。我的PHP脚本functionrun_query(mysqli$con,$query){$res=$con->query($query);return$res;}$reply=array();if(isset($_POST['json'])){require_once__DIR__.'/config

php - 使用 PHP 和 MySQL 生成强大的唯一用户 ID

嗨,堆栈溢出!这是我的第一篇文章...我正在尝试使用加盐的唯一公钥来识别用户。算法-我应该使用uniqid()、sha256、sha512还是其他算法?所有哈希都将被加盐。NIST推荐SHA256,但我更愿意听听其他人的建议。生成-hash(SALT+AUTO_INCREMENT_PK+CREATED_TIMESTAMP)是否足够?更多的熵?我会使用电子邮件,因为它对每个用户都是唯一的,但是用户可以修改他们的电子邮件地址。我还考虑存储signup_email,这样就不必重新计算哈希。MySQL存储-目前,我们的ID是INT(255)auto_increment主键。如前所述,可能有数亿

mysql - 如何在此 PHP 和 MySQL 代码中演示 SQL 注入(inject)?

我想首先指出,这是对我自己的数据库的一次教育尝试,目的是更好地理解MySQL注入(inject)以保护我自己的代码。我需要找出几个示例,说明如何针对以下代码构建MySQL注入(inject)。这是一个基本的用户登录系统,我在其中接受用户名和密码而不进行任何转义$user=(!empty($_POST['user']))?$_POST['user']:'';$pass=(!empty($_POST['pass']))?$_POST['pass']:'';然后MySQL查询尝试在我的名为users的表中查找输入的用户名和密码,如下所示:$res=mysql_query("SELECT*fr

PHP/MySQL 安全登录和 session

我有一个登录当前网站的服务,我想知道的是-有什么特别的方法可以称为最安全吗?请允许我更好地解释一下我的系统:我目前有一个带有用户表的PHPMySQL数据库。用户名和密码都存储为VARCHAR(我知道这不是最好的密码)。在注册表单方面,我通过只允许输入a-Z0-9并限制字符数来规范密码和用户名的选择。在登录表单方面,我使用mysql_real_escape_string停止攻击,并使用POST到iFrame而不是AJAX。我觉得我正在尽我所能来防止来自表单端的攻击,而不是来自数据库端的攻击。我知道您可以在进入数据库时​​将密码存储类型更改为加密,但我不明白的是我将如何查询这个加密的字符串

php - 安全地存储数据

我了解大部分安全存储数据的概念,包括将数据存储在仅允许来自应用程序的连接的单独服务器上、用于加密的key对等。但是,我仍然不了解如何分离服务器使它更加安全。例如,假设我有一个经过加固和安全处理的网络服务器,它从用户输入中捕获数据进行存储。数据被加密并通过数据库查询或Web服务提交到数据库服务器。数据库服务器只允许来自网络服务器的连接,并以加密形式存储数据。因此,如果有人访问数据库,数据就毫无值(value)。但是,如果有人访问Web服务器,他们将有权访问数据库以及加密算法和key,不是吗?既然如此,为什么还要将数据放在不同的服务器上,因为数据传输只是另一个潜在的攻击点?有没有什么办法可

mysql - 为公众提供一种在数据库上运行 SELECT 查询的方法有多危险?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion假设我执行以下操作:我创建了一个MySQL数据库,并用一些数据填充它。我创建了一个MySQL用户,该用户只能访问该数据库,并且只有SELECT权限。我创建了一个网页,用户(任何用户,无需密码)可以通过该网页输入任意SQL,并且在提交表单时,脚本会尝试以我创建的MySQL用户身份运行SQL;生成的任何结果集都会显示给用户;生成的任何错误消息都会显示给用户。假设数据库不包含存储过程等,只包含表

php - 'admin' OR 1=1 -- '的含义是什么

以下查询返回表tbl_user中的所有密码,但我不明白为什么会这样。SELECTpasswordFROMtbl_usersWHEREname='admin'OR1=1--'请帮助我理解这部分查询:'admin'OR1=1--'你能介绍其他类似的威胁(网站、书籍等)吗? 最佳答案 这是一个典型的SQL注入(inject)。在我解释时请看这个fiddle:SQLfiddle在这个例子中,有5个用户被添加到表中。然后运行您的查询。预期结果是仅为admin用户返回密码值。但是,通过添加1=1,这是一个true语句,将返回所有密码。另一种帮助

php - SQL 注入(inject) - 这(oneliner)安全吗?

PHP:$SQL="SELECTgoodiesFROMstashWHEREsecret='".str_replace("'",'',$_POST['secret'])."'";邪恶的天才黑客能否将SQL注入(inject)我的SELECT-如何? 最佳答案 为什么不使用mysql_real_escape_string()或更好的准备语句?您的解决方案似乎很愚蠢。 关于php-SQL注入(inject)-这(oneliner)安全吗?,我们在StackOverflow上找到一个类似的问题:

php - 在 PHP 代码中存储 SQL 登录信息的安全风险?

第一次阅读,第一次张贴(哇!)所以我一直在为一个非正式网站实现我的登录脚本。不太可能被泄露,但为了安全起见,我想问一下,将我的MySQL数据库登录信息以明文形式存储在php代码中是否存在安全风险。据我所知,代码本身由Apache解析,因此最终用户看不到它(只是输出),这意味着它应该是安全的......但我想第二意见。总结:通过mysql_connect、mysql_select_db、mysql_query访问数据库。登录信息存储在每次脚本迭代时定义的局部变量中,并且(我认为)在脚本终止后转储。安全漏洞? 最佳答案 您还可以考虑将用

php - 我的网站有多安全?

作为一个初级的Web开发人员,我尽我所能通过检查清理所有用户输入,什么不是。然而,今天,我发现我的网站被黑了(我会根据要求分享他们的网站),这真的让我想知道他们是怎么做到的。我正在恢复我的网站。我该怎么做才能防止这些事情发生?是否有我应该与之交谈并询问我的网站的安全性的人?我能做些什么来保证我的网站安全?我用PHP和MySQL编写了我的网站。更新:终于恢复了备份。我用$_GET["name"]在我的脚本中,我猜这就是他们进入我网站的方式。首先,他们能够在我的服务器上的每个文件夹和每个文件夹中放置一个index.html/index.php文件。有谁知道我怎么能反驳这个?更新:实际上,被