capdrupal 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/README.md +5 -0
- data/capdrupal.gemspec +1 -1
- data/lib/capdrupal.rb +57 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7266984d5cca0bd4f27392796b71cca44f6a5be8017743ec8075c030e87d3c99
|
4
|
+
data.tar.gz: 719349f1a190ef5aca2833f9e37a682d3a111d1ec6498c6bf8a4d0a9c945d7cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b75fbaa093cc8e3d858f652bba34604ff32534ff8a21e46614c89feae8a77d21115638164cf15a09a65154a87da653da932c623615a3ebec7a3397f168ada72
|
7
|
+
data.tar.gz: d4ef047b57d2f1385d50db3305ce5b990e6ef955e62e333ada3bd097a04cc23138a8434c05b5a62e4263072357ce9507aad16d69e4bb7a980bbc96ea6665c1bd
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
# Capdrupal Changelog
|
2
2
|
|
3
|
-
##
|
3
|
+
## NEXT RELEASE
|
4
|
+
|
5
|
+
## 3.0.4 (2023-04-25)
|
6
|
+
- add command `drupal:security:obscurity:files` to obfuscate Drupal sensitive files by deletion
|
7
|
+
- add command `drupal:security:obscurity:htaccess` to obfuscate Drupal sensitive files by htaccess
|
8
|
+
|
9
|
+
## 3.0.3 (2023-03-14)
|
10
|
+
- Only files directory must have permissions fixed to be writable, not all shared files.
|
4
11
|
|
5
12
|
## 3.0.2 (2022-12-22)
|
6
13
|
- Allow Site directory to be configured
|
data/README.md
CHANGED
@@ -12,6 +12,7 @@ Capdrupal Gem Version | Branch | Capistrano Version | Drupal Version
|
|
12
12
|
0.11.0 | d7 | 2 | 7.x
|
13
13
|
3.x | main | 3.x | 8.x
|
14
14
|
3.x | main | 3.x | 9.x
|
15
|
+
3.x | main | 3.x | 10.x
|
15
16
|
|
16
17
|
## Prerequisites
|
17
18
|
|
@@ -152,6 +153,10 @@ namespace :deploy do
|
|
152
153
|
|
153
154
|
# Clear your Drupal 8 cache.
|
154
155
|
after :updated, "drupal:cache:clear"
|
156
|
+
|
157
|
+
# Obfuscate Drupal sensitive files by removing or by denying access to them.
|
158
|
+
# after :updated, "drupal:security:obscurity:files"
|
159
|
+
# after :updated, "drupal:security:obscurity:htaccess"
|
155
160
|
|
156
161
|
# Disable the maintence on the Drupal project.
|
157
162
|
after :updated, "drupal:maintenance:off"
|
data/capdrupal.gemspec
CHANGED
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |spec|
|
5
5
|
spec.name = 'capdrupal'
|
6
|
-
spec.version = '3.0.
|
6
|
+
spec.version = '3.0.4'
|
7
7
|
spec.authors = ['Kevin Wenger', 'Yann Lugrin', 'Gilles Doge', 'Toni Fisler', 'Simon Perdrisat', 'Robert Wohleb', 'Kim Pepper']
|
8
8
|
spec.email = ['hello@antistatique.net']
|
9
9
|
|
data/lib/capdrupal.rb
CHANGED
@@ -7,6 +7,27 @@ namespace :load do
|
|
7
7
|
set :keep_backups, 5
|
8
8
|
set :enable_modules, []
|
9
9
|
set :disable_modules, []
|
10
|
+
set :security, {
|
11
|
+
# Path of files to be removed from the release path.
|
12
|
+
obscurity: [
|
13
|
+
"#{fetch(:app_path)}/core/install.php",
|
14
|
+
"#{fetch(:app_path)}/install.php",
|
15
|
+
"#{fetch(:app_path)}/update.php",
|
16
|
+
"#{fetch(:app_path)}/core/COPYRIGHT.txt",
|
17
|
+
"#{fetch(:app_path)}/core/CHANGELOG.txt",
|
18
|
+
"#{fetch(:app_path)}/core/INSTALL.mysql.txt",
|
19
|
+
"#{fetch(:app_path)}/core/INSTALL.pgsql.txt",
|
20
|
+
"#{fetch(:app_path)}/core/INSTALL.sqlite.txt",
|
21
|
+
"#{fetch(:app_path)}/core/MAINTAINERS.txt",
|
22
|
+
"#{fetch(:app_path)}/core/LICENSE.txt",
|
23
|
+
"#{fetch(:app_path)}/core/INSTALL.txt",
|
24
|
+
"#{fetch(:app_path)}/core/UPDATE.txt",
|
25
|
+
"#{fetch(:app_path)}/core/USAGE.txt",
|
26
|
+
"#{fetch(:app_path)}/CHANGELOG.txt",
|
27
|
+
"#{fetch(:app_path)}/INSTALL.txt",
|
28
|
+
"#{fetch(:app_path)}/example.gitignore",
|
29
|
+
]
|
30
|
+
}
|
10
31
|
end
|
11
32
|
end
|
12
33
|
|
@@ -249,8 +270,42 @@ namespace :drupal do
|
|
249
270
|
within shared_path do
|
250
271
|
# Remove execution for files, keep execution on folder.
|
251
272
|
# "web/sites/defaults/files" is a shared dir and should be writable.
|
252
|
-
execute :find,
|
253
|
-
execute :find,
|
273
|
+
execute :find, "#{fetch(:app_path)}/sites/#{fetch(:site_path)}/files", '-type f ! -perm 664 -exec chmod 664 {} \;'
|
274
|
+
execute :find, "#{fetch(:app_path)}/sites/#{fetch(:site_path)}/files", '-type d ! -perm 2775 -exec chmod 2775 {} \;'
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
280
|
+
namespace :security do
|
281
|
+
|
282
|
+
desc 'Security by Obscurity'
|
283
|
+
namespace :obscurity do
|
284
|
+
|
285
|
+
desc 'Obfuscate Drupal sensitive files by deletion'
|
286
|
+
task :files do
|
287
|
+
on roles(:app) do
|
288
|
+
within release_path do
|
289
|
+
fetch(:security)[:obscurity].each do |file|
|
290
|
+
execute :rm, file, '-f'
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
desc 'Obfuscate Drupal sensitive files by htaccess'
|
297
|
+
task :htaccess do
|
298
|
+
on roles(:app) do
|
299
|
+
htaccessFile = release_path.join(fetch(:app_path)).join('.htaccess')
|
300
|
+
|
301
|
+
[
|
302
|
+
'## added during deploy',
|
303
|
+
'## Obfuscate Drupal sensitive files by denying access',
|
304
|
+
'<FilesMatch "(^API|CHANGELOG|COPYRIGHT|INSTALL|LICENSE|PATCHES|MAINTAINERS|README|TODO|UPGRADE|UPDATE|CHANGES|install|update|authorize).*\.(md|txt|php)$">',
|
305
|
+
' Order deny,allow',
|
306
|
+
' Deny from all',
|
307
|
+
'</FilesMatch>'
|
308
|
+
].each { |line| execute "echo '#{line}' >> #{htaccessFile}" }
|
254
309
|
end
|
255
310
|
end
|
256
311
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capdrupal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Wenger
|
@@ -11,10 +11,10 @@ authors:
|
|
11
11
|
- Simon Perdrisat
|
12
12
|
- Robert Wohleb
|
13
13
|
- Kim Pepper
|
14
|
-
autorequire:
|
14
|
+
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date:
|
17
|
+
date: 2023-04-25 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: capistrano
|
@@ -95,7 +95,7 @@ homepage: http://github.com/antistatique/capdrupal/
|
|
95
95
|
licenses:
|
96
96
|
- MIT
|
97
97
|
metadata: {}
|
98
|
-
post_install_message:
|
98
|
+
post_install_message:
|
99
99
|
rdoc_options: []
|
100
100
|
require_paths:
|
101
101
|
- lib
|
@@ -110,8 +110,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
requirements: []
|
113
|
-
rubygems_version: 3.1.
|
114
|
-
signing_key:
|
113
|
+
rubygems_version: 3.1.2
|
114
|
+
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: A set of tasks for deploying and managing Drupal projects with Capistrano
|
117
117
|
test_files: []
|